Sunset Flight

This is Skywalker Flight #74, flown on Sept. 7, 2017.  It ended up being a 38.5 minute flight–scheduled to land right at sunset.  The purpose of the flight was to carry insect traps at 300′ AGL and collect samples of what might be flying up at that altitude.

What I like about this flight is that the stable sunset air leads to very consistent autopilot performance.  The circle hold is near perfect.  The altitude hold is +/- 2 meters (usually much better), despite continually varying bank angles which are required to hold a perfect circle shape in 10 kt winds.

The landing at the end is 100% autonomous and I trusted it all the way down, even as it dropped in  between a tree-line and a row of turkey barns.  The whole flight is presented here for completeness, but feel free to skip to part 3 if you are interested in seeing the autonomous landing.

As an added bonus, stick around after I pick up the aircraft as I walk it back.  I pan the aircraft around the sky and you can clearly see the perfect circle hold as well as the landing approach.  I use augmented reality techniques to overlay the flight track history right into the video–I think it’s kind of a “cool tool” for analyzing your autopilot and ekf performance.

Field Comparison of MPU6000 vs VN100T

The U of MN UAV Lab has flown a variety of sensors in aircraft, ranging from the lowly MPU-6000 (such as is found on an atmel based APM2 board) all the way up to an expensive temperature calibrated VectorNAV VN-100T.  I wish to present a quick field comparison of these two sensors.

Hobby King Skywalker with MPU-6000.
Sentera Vireo with VectorNav VN-100T onboard.

[disclaimers: there are many dimensions to any comparison, there are many individual use cases, the vn100 has many features not found on a cheap MPU-6000, the conditions of this test are not perfectly comparable: two different aircraft flown on two different days.   These tests are performed with a specific MPU-6000 and a specific VN-100T — I can’t say these predict the performance of any other specific IMU.  Both sensors are being sampled at 100hz externally.  Internally the MPU-6000 is being sampled at 500hz and filtered.  I suspect the VN-100T is outputting unfiltered values — but that is just a guess from the plot results.]

The point of this post is not to pick on the expensive solution, comparisons are difficult with a perfectly level playing field.  But hopefully I can show that in many ways, the less expensive solution may not be as bad as you thought–especially with a little calibration help.

Exhibit A: Raw gyro data in flight

I will mostly let the plots speak for themselves, they share the same vertical scale and cover about the same time span.  The less expensive sensor is clearly less noisy.  This trend holds up when the two sensors are motionless on the ground.

MPU-6000 gyros (100 seconds of flight)
VN-100T gyros (100 seconds of flight)

Exhibit B: Raw accelerometer data in flight

Again, the plots speak for themselves.  Given the same vertical and horizontal scales, the less expensive sensor is by far less noisy.

MPU-6000 accelerometers (100 seconds of flight)
VN-100T accelerometers (100 seconds of flight)

Exhibit C: Sensor bias estimates

The UMN UAV lab flies it’s aircraft with our own high fidelity EKF library.  The EKF code is the fancy mathematical code that estimates the aircraft state (rolll, pitch, yaw, position, velocity, etc.) given raw IMU and GPS inputs.

One of the arguments against a cheap sensor versus an expensive temperature calibrated sensor is you are paying for high quality temperature calibration in the expensive model.  This is a big deal with mems IMU sensors, because temperature can have a big effect on the bias and accuracy of the sensor.

This next pair of plots requires a small bit of explanation (please read this first!)

  • For every temp step, the UMN EKF library estimates the bias (or error) of each individual gyro and accelerometer (along with estimating aircraft attitude, position, and velocity.)
  • We can plot this bias estimate over time and compare them.
  • The bias estimates are just estimates and other errors in the system (like gps noise) can make the bias estimates jump around.
  • I have developed a temperature calibration process for the inexpensive IMU’s.  This process is being used to pre-correct the MPU-6000 sensor values in flight.  This correction process uses past flight data to develop a temp calibration fit and the more you fly and the bigger range of temperatures you fly in, the better the calibration becomes.
  • Just to be clear: for these final plots, the MPU-6000 is using our external temp calibration process — derived entirely from past flight data.  The VN-100T is running it’s own internal temp calibration.
  • These bias estimates are not perfect, but they give a suggestion of how well the IMU is calibrated.  Higher bias values suggest a larger calibration error.

MPU-6000 sensor bias estimates from UMN EKF library.

VN-100T sensor bias estimates from UMN EKF library.

What can we learn from these plots?

  • The MPU-6000 gyro biases (estimated) are approximately 0.05 deg/sec.
  • The VN-100T gyro biases (estimated) are as high as -1.0 deg/sec in roll and 0.35 deg/sec in yaw.
  • The MPU-6000 accel biases (estimated) are in the 0.1 m/s^2 range.
  • The VN-100T accel biases (estimated) are also in the 0.1 m/s^2 range.

In some cases the MPU-6000 with external temperature calibration appears to be more accurate than the VN-100 and in some cases the VN-100T does better.


By leveraging a high quality EKF library and a bit of clever temperature calibration work, an inexpensive MPU-6000 seems to be able to hold it’s own quite well against an expensive temperature calibrated mems IMU.