DCM and EKF's Confusion

Hello everybody! I am ardupilot copter beginner, sorry for my poor English, hope you can understand what I mean~

Recently I was studying DCM and EKF in the ArduCopter, research for a long time, but I still have a lot of doubts:

  1. I learned that DCM used to be used alone, so, I would like to use DCM alone, test performance, I try to set the parameter EK2_ENABLE to 0, parameter AHRS_EKF_TYPE to 0, parameter EKF1_ENABLE to 0, but connect to ground station after reboot, GCS shows “PreArm: Waiting for Nav Checks”, I don’t know where it went wrong, or that DCM can’t be used alone now, and must rely on EKF?
  2. A second question is, what is the relationship between DCM and EKF? also, What is the relationship between ekf1 function method and ekf2 function method in the ArduCoter? I probably know that EKF must rely on the DCM’s a valid tilt error estimate and ekf2 function is another kind of EKF algorithm. But does DCM also rely on EKF? Because I saw the _dcm_matrix matrix in the DCM algorithm is accumulated based on the EKF algorithm’s _dcm_matrix matrix. Is there any information I can get to know?

Hope for your reply~


you might find the information you need here: http://ardupilot.org/copter/docs/common-apm-navigation-extended-kalman-filter-overview.html#common-apm-navigation-extended-kalman-filter-overview

DCM is the old filter used. EKF (extended Kalman filter) is the current recommended default. EKF2 is an improved version of it that will for example allow takeoff from a moving platform (boat).

1 Like

Hi, tobiaswitting!
Both the DCM and EKF can supply the attitude estimation and velocity estimation, which one does the APM use?
It seems that the EKF use the attitude esstimation form DCM, it is so strange.