3D Robotics

New EKF viewer in Mission Planner/APM:Copter 3.3


Many here may not follow the behind the scenes work of the dev team, but here's one glimpse of a cool new feature for data geeks in APM:Copter 3.3. As you may know, the APM flight code uses an Extended Kalman Filter (EKF), which is a sophisticated way (based on Baysian statistics) to do sensor fusion across a wide range of sensors. Along with an attitude solution, the EKF reports the "health" of the solution, which is broadly how confident it is in the result. With APM:Copter 3.3 and the latest Mission Planner, you can now see a graphical display of the EKF, which can really help in optimizing copters for best performance.

Here's lead developer Randy Mackay's explanation from the GitHub issue tracking this development:

With AC3.3 the EKF provides an EKF_STATUS (http://mavlink.org/messages/ardupilotmega#EKF_STATUS_REPORT) message down to the GCS so the mock-up above attempts to present this info to the user in an easy to understand way.

The HUD gets a new "EKF" field that is green, amber or red. The colour of the field depends upon the highest variance from the EKF_STATUS_REPORT message. If the highest is below 0.5 the field is green, below 0.8, it's amber, higher than 0.8 it should be red.

Ideally the user should be able to click on the EKF field in the HUD and a detailed EKF viewer screen should pop-up which shows the individual variances and also the flags.

For most flags, there is a field on the viewer which changes colour depending upon the flag's value. If the flag is "1", the field is green. if the flag is "0", the field is red.
One exception to this is the "const" field (the EKF_CONST_POS_MODE flag) which should be reversed (i.e. "0" = green, "1" = red).

The list of flags can be seen by searching this web page for EKF_STATUS_FLAGS: http://mavlink.org/messages/ardupilotmega
or by checking the ardupilot code directly:

It seems some new flag values are being used in the ardupilot code that haven't been defined in the MAVLINK definition for EKF_STATUS_FLAGS. Hopefully Paul or I will add these additional definitions although only the "using_gps" one needs to be shown on the display.

E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones


  • It is working well on 3.3

  • It's not working with 3.2.1 firmware right?

  • Never mind you have to go to help then check for beta updates. Then the option is there after that.

  • Were do you enable this on MP I found it on the tower app very nice but not on mission planner. 

  • Thirded, this is great, should be on its own tab

  • Thank you randy for your effort

  • Randy I second that.

    I think a diagnostics tab should be added to the Quick access area so that it can be displayed all the time instead of the gauges and without covering the map or HUD. Ideally one should be able to select what parameter to display as a bar graph (with peak hold) or be able to graph over time as well. I'd also have some ideas how to possibly integrate it into the HUD itself...or maybe produce a diagnostics HUD overlay.

  • Randy. I think that this is too important to just make it a clickable option in the hud. Maybe it should be another screen like the gauges too. I know you don´t develop the GCS but maybe it can be arranged with the corresponding developers

  • Developer

    Yes, I love this feature along with the new real-time vibration monitor which should hopefully make it easier for the pilot and drone builders to know the state of their vehicle.

    3702080337?profile=originalI've asked for AP2 and Tower developers to add the equivalent in their apps in time for the Copter 3.3 release (issues here, herehere and here) and they indicated they'll try so I'm hopeful.

  • I have already test it (shortly) and I think it is a huge thing. Clearly this can save many copters specially for newbies but for experienced users as well. 

    Please make it a standard for all GCS and keep developing this feature. 

    Good work dev team!!!

This reply was deleted.