Skip to content

Switching State Estimators

This page shows you which state estimators are available and how you can switch between them.


EKF2 is the default and should be used unless you have a reason not to (in particular on vehicles with a GNSS/GPS). The Q-Estimator can be used if you don't have GPS, and is commonly used in multicopter racers.

Available Estimators

The available estimators are:

  • EKF2 attitude, position and wind states estimator (recommended) - An extended Kalman filter estimating attitude, 3D position / velocity and wind states.

  • LPE position estimator (deprecated) - An extended Kalman filter for 3D position and velocity states.


    LPE is deprecated. It works (at time of writing, in PX4 v1.14) but is no longer supported or maintained.

  • Q attitude estimator - A very simple, quaternion based complementary filter for attitude. It does not require a GPS, magnetometer, or barometer.

How to Enable Different Estimators

To enable a particular estimator enable its parameter and disable the others:

  • EKF2_EN - EKF2 (default/recommended)
  • ATT_EN - Q Estimator (quaternion based attitude estimator)
  • LPE_EN - LPE (not supported for Fixed-wing)


It is important to enable one, and only one, estimator. If more than one is enabled, the first to publish the UOrb topics vehicle_attitude or vehicle_local_position is used. If none are enabled then the topics are not published.


For FMU-v2 (only) you will also need to build PX4 to specifically include required estimator (e.g. EKF2: make px4_fmu-v2, LPE: make px4_fmu-v2_lpe). This is required because FMU-v2 is too resource constrained to include both estimators. Other Pixhawk FMU versions include both.