Without any knowledge of DCM, I'm porting a DCM implementation, that is used with SparkFuns 9DOF to C for ARM Cortex M3.

 

So far it goes well, but since I do not know what to expect of data in the matrices, I do not know if the current filter output data is tuned well.


In the test below I quickly moved the IMU with my hands over a flat table. I did this from left to right over the X-axis from the accelerometer. Sure there might be some Y-axis movement as well since I cannot achieve that accuracy with my bare hands.

Mostly I`m interested if the gyro's VS accelerometers are aligned well and not reversed. Can anyone please advice me?

Because what I do not understand is that the X-axis of the accelerometer is measuring the shaking, which is right, but also the gyro is measuring rotation over the X-axis.

On the IMU, the X axis from gyro is mounted in the same way the X-axis of accelerometer is pointing to (same holds for Y and Z)

 

The sample time is 50Hz

Gyro data to grad/s can be calculated by dividing by 14.375

Acc. data to Gravity can be calculated by dividing by 4096

The output of the filter is already in grads/s

 

The first 2 plots are RAW data from sensors, the third plot is the output from filter in grad/s.

cogyroplot2.png10 times shaking, paused, 1 short shake, pause, one more shake, pause

 

Below a plot of the raw data from gyro and accelerometer (Z axis). 

Clearly there is also a lot of change (noise?) on the Z-axis of the accelerometer, what I find strange since the gravity isn't changing since it is shaking/lying on a flat surface.

cogyroplot2a.png

What I expected from this test is that only the x-axis from accelerometer shows changes (since I'm shaking in into that direction) and that the rest of all the axis (gyro and accelerometer) isn't disturbed at any way.

 

By the way, it is for a Quadrocopter.

 

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

Join diydrones

Email me when people reply –

Replies

  • I would check that moving each sensor along each axis produces little/no effect on the other axes and other sensors. Basic orthogonality.

     

    I've been porting MatrixNav DCM to x86 Linux + STM32 too. Maybe I can be of more help in a couple days.

    .

This reply was deleted.

Activity

Jose Araujo liked Jose Araujo's profile
Aug 29
spencer harvey liked spencer harvey's profile
Jul 9
More…