Zero shift in sensor fused acceleration data


I'm currently attempting to integrate sensor fused linear acceleration data in order to find the velocity of a swimmer. Here is a graph of velocity that was obtained by integrating the linear acceleration values after denoising procedures were applied.

The graph is inaccurate. It seems as if the sensor is "losing its frame of reference" after the dive and after each turn.

I was wondering what I would have to do to avoid this behavior.

I'm logging data using an MMC board and collecting data through the MetaBase app for IOS. I'm logging both the "quaternion" values as well as the "linear acceleration" values on the app.

Also, I was curious as to the sensor fusion configurations that the app uses in terms of acceleration range and gyroscope range as well as what sensor fusion mode is being used.

Board information:
-- Hardware [0.2]
-- Firmware [1.4.5]
-- Model number [6]

Host Device
-- Iphone 8
-- IOS 13.1.2

Many thanks.


  • Any update on this topic?

  • @Force, what does your raw data look like after filtering?

    The turn may be too rapid and violent for the sensor fusion to accurately track through it.

    Dead reckoning is a notoriously difficult problem without an absolute position sensor (such as GPS) to correct for drift and other error accumulation due to integration.

    For your described application, heading does not seem to be a critical element so I would recommend IMUplus as the operating mode.

    The MetaBase settings for IMUplus are 100Hz sampling rate, 16g accel sensitivity, 2000 dps gyro sensitivity.


  • @Matt Thank you for the suggestion. I'll definetly check it out.

    For clarification, MetaBase uses the IMUplus operating mode when gathering "linear acceleration" values?

  • Yes it uses sensor fusion module to get linear acceration or euler or quaternion. Note that you can only take one of those three to keep maximum sampling frequency 100hz

  • @Force MetaBase will use NDoF for linear acceleration on an MMC. Are you integrating the vector magnitude of linear acceleration or one axis in particular? I assume the sharp dips are the turns. Is it possible for your velocity model to apply some correction knowing that it must return to zero during the direction reversal?

  • @Matt Wait, you cannot get linear acceleration with IMU_PLUS?

  • @nekos You can get linear acceleration with IMUplus. A link with more information:

    @Matt It is possible to apply some correction knowing that the velocity must be zero. However, the correction results in the gradual upwards trend of the data. Is it possible that the lower ODR for the magnetometer in the NDoF operating mode is responsible for the zero shift during the turns?

  • @Force,
    It is not possible to lower the ODR of the mag in sensor fusion as it is automatically set by the Bosch library.

  • @force I would be surprised if the magnetometer is causing any issue. The linear acceleration will be derived almost entirely from the accelerometer. Integrating to get velocity will tend to always have drift issues because it is summing error and offsets over time.

Sign In or Register to comment.