Smoothing out sensor fusion data in real time?

edited June 2019 in General

I am working on an application that replicates the motion of the lower body on screen. Right now I have 3 MMC sensors on one leg and am animating the motion of that leg in real time (using quaternions streaming from the sensors). It is looking pretty good but the animation is kind of shaky/jittery for lack of a better word (see the linked video below). Is there a good way to smooth out this data so the leg will follow me smoothly in real time?

If nothing else I might just average the values over some delta time and update the leg with those values. But I would like to keep as much speed/precision as possible while making it look better. Right now the sampling rate and everything else is default so maybe some adjustment there is the trick. Interested in feedback/ideas while I work on this.

Comments

  • edited June 2019

    I'm not sure that this matters but just for the record:

    Development is being done on Android, a background service is run on the phone to pull data from the sensors which then passes the data to a Unity application running in the foreground for the animation. The phone is a Samsung Galaxy S8. The sensors are recently purchased MetaMotionCs with fresh batteries.

  • @gammonm
    You are exactly right, in our own application we use an averager to "smooth out the data" and a filter to "remove noise". You can do the same :)

  • @Laura said:
    @gammonm
    You are exactly right, in our own application we use an averager to "smooth out the data" and a filter to "remove noise". You can do the same :)

    Thanks Laura. I have also now extended the above example to two legs (6 sensors) and we are seeing some performance issues. Is there a recommended way to handle streaming quaternions in real time from a larger number of sensors?

  • Use linux

  • edited June 2019

    @gammonm said:

    @Laura said:
    @gammonm
    You are exactly right, in our own application we use an averager to "smooth out the data" and a filter to "remove noise". You can do the same :)

    Thanks Laura. I have also now extended the above example to two legs (6 sensors) and we are seeing some performance issues. Is there a recommended way to handle streaming quaternions in real time from a larger number of sensors?

    What do you mean by "performance issues"? Provide more details.

Sign In or Register to comment.