False acceleration readings from S-FUSION with K64F

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

False acceleration readings from S-FUSION with K64F

Jump to solution
818 Views
haneybriggs
Contributor II

Hello I am using the S-FUSION development kit with the K64F MCU. I am confused about the data I am receiving. I am reading the acceleration data while keeping the board still, and getting readings of around 0.7 m/s^2 in the Y direction and about 0.07 in the X direction. I am trying to use the acceleration to measure distance, but I can't even get close with the readings this way. Without moving the board, I am getting a displacement of almost 12 meters per 5 seconds. Any reason for this and is there a way I can fix it?

Labels (1)
0 Kudos
1 Solution
555 Views
markpedley
NXP Employee
NXP Employee

This is not unexpected and there are two explanations. I assume you're looking at the linear acceleration output in the global frame.

Consumer grade accelerometers are factory calibrated to (typically) 30mg to 50mg so your error of 0.7m/s2 = 70mg is not unreasonable particularly when any orientation error maps in an additional error of 17mg per deg orientation error.

Single integration of acceleration to obtain velocity and double integration to obtain displacement is simply not feasible with consumer grade sensors since integration errors increase steadily with time and cannot be controlled.

The raw acceleration output (global frame) is the limit of what's achievable.

View solution in original post

0 Kudos
2 Replies
556 Views
markpedley
NXP Employee
NXP Employee

This is not unexpected and there are two explanations. I assume you're looking at the linear acceleration output in the global frame.

Consumer grade accelerometers are factory calibrated to (typically) 30mg to 50mg so your error of 0.7m/s2 = 70mg is not unreasonable particularly when any orientation error maps in an additional error of 17mg per deg orientation error.

Single integration of acceleration to obtain velocity and double integration to obtain displacement is simply not feasible with consumer grade sensors since integration errors increase steadily with time and cannot be controlled.

The raw acceleration output (global frame) is the limit of what's achievable.

0 Kudos
555 Views
michaelestanley
NXP Employee
NXP Employee

How are you reading the values?  Accelerometers measure the sum of gravity and linear acceleration.  So if you are looking at the raw accelerometer readings for an at-rest sensor, you should get X2+Y2+Z2 ~ 1g.  This is what I expect you are looking at.  What you want to look at is the linear acceleration output of the fusion algorithm.

That said, using a double integration to compute distance from linear acceleration is usually considered a non-starter.  Any noise in the accelerometer output will be integrated twice, and the result with explode with time.  This is a classic physics 101 mistake.  If you have other system inputs (like GPS or wireless beacons) to periodically (every few seconds) rebaseline position, then you can merge in IMU information to interpolate between points, but that is probably the best you are going to be able to do.

0 Kudos