Kalman Filter vs DCM

Hi,

 

I have been in R&D phase of UAVs for past some time, especially self-stabilization algorithms.

It may sound a dumb question but comparing DCM vs Kalman Filter, is that a fair comparison?

 

My understanding was that Kalman filter is used to smoothen the IMU signals and calculate precise Roll and Pitch angles. While DCM (Direction Cosine Matrix) is something (blackbox for me for now) which is actually the stabilization algorithm (as if Kalman Filter readings are fed into DCM to determine the attitude of the flying vehicle).

 

Then suddenly I read somewhere (I think another post of DIYdrones) that Arduino is not capable of Kalman Filter, so DCM is a better choice.

 

It has tunred my so-far acquired concepts upside down ;-)

Can anyone please explain the above two to me and also if there is really a connection in between them or they are rather different approaches to solve the same problem?

 

I wished I had been an engineer, sounds embarassing asking such a fundamental questions.

But beleive me, I am truly after it. It's so damn interesting and appealing.

 

 

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

Join diydrones

Email me when people reply –

Replies

  • Hi.. 

    I was following this discussion and this site in general with great interest. 

    After reading some documents in the internet the conclusion I came about the general process of attitude estimation as follows. 

    Please correct me if I am wrong here.

    1. In first place acceleration and angular rates are taken in to the system

    2. Because these sensor inputs are so noisy the inputs are added together to get more accurate measurement.

            For this approach fusion mechanism is needed and here is the place the complementary filter/ Kalman filter comes in to the role.

    3. Attitude measurements found from above is related to the aircraft body itself.

             ie: we cant still see the attitude with respect to the earth ( If we rotate the aircraft in a axis 20 degrees irrespective to the initial possition the attitude we get is 20 )

    4. Then this attitude estimation can be used to find the attitude of the aircraft with related to the earth.

            To this only the Eular method, DCM or quartarnian methods been used.

    If there is something wrong in my understanding can anyone please point this out to me.

    Thanks a lot in advance.

  • The AHRS information-roll,pitch and yaw in UAV sensors is updated (60 packets/sec) faster than GPS (1 packet/sec).Trajectory tracking has erroneous results if you estimate the position with GPS to follow your trajectory( as your velocity and acceleration values vary significantly in this 1 sec).So you apply kalman filter(like  dead reckoning) to estimate the position and also to eliminate the error in AHRS .S=S'+ut+1/2 at2.[S' is your position from GPS and U from GPS velocity token].

    The velocity obtained from GPS is in WGS 84 co-ordinate system.The AHRS information is in body reference frame.If the trajectory is to be plotted in UTM projections ,WGS frame is to be projected in UTM ..This is done by multiplying with DCM(the euler  angles obtained from AHRS shows the differerce of angles between these two frames and are presented as a matrix which is called as directional cosine matrix).

    As you thought earlier,both KF and DCM are entirely different .

  • I don't know about UAV applications for KF, but I know that Team Tobor did position/heading estimation with an EKF with (?) 5 states or 6 or... more (?) on an Arduino for his ground vehicle for the Sparkfun AVC. All KF's aren't the same. It's a question of how many state variables, update rate required, etc.

     

    A KF is used to filter noise and estimate system state, but requires the system can be mathematically modeled (e.g., acceleration, velocity, position). And so if the state variables describes heading/attitude, it can be used for an AHRS (e.g., the CHR-6dm I'm using on my AGV, Data Bus).

     

    DCM is also used to estimate heading and attitude in a popular autopilot program; it just takes a different approach for error correction, I guess. I have no idea if DCM can be used for other applications.

This reply was deleted.

Activity