1. For downloading SimTools plugins you need a Download Package. Get it with virtual coins that you receive for forum activity or Buy Download Package - We have a zero Spam tolerance so read our forum rules first.

    Buy Now a Download Plan!
  2. Do not try to cheat our system and do not post an unnecessary amount of useless posts only to earn credits here. We have a zero spam tolerance policy and this will cause a ban of your user account. Otherwise we wish you a pleasant stay here! Read the forum rules
  3. We have a few rules which you need to read and accept before posting anything here! Following these rules will keep the forum clean and your stay pleasant. Do not follow these rules can lead to permanent exclusion from this website: Read the forum rules.
    Are you a company? Read our company rules

Flypt Filter Research (or why doesnt my rig move right?)

Discussion in 'FlyPt Mover' started by Historiker, Feb 13, 2020.

  1. Historiker

    Historiker Dramamine Adict Staff Member Moderator Gold Contributor

    Joined:
    Dec 16, 2010
    Messages:
    1,930
    Occupation:
    Retired
    Location:
    Michigan USA
    Balance:
    9,463Coins
    Ratings:
    +1,822 / 13 / -1
    My Motion Simulator:
    3DOF, DC motor, Arduino, Motion platform, 6DOF
    This thread is to, hopefully, help those of us that do not have a firm grasp on filters and how to use them. Too often filters are discussed in terms of audio wave forms and although I understand that this is the correct terminology (ok, I don't really but I am told it is) it would be very very helpful to have filters explained in a (setting) = (effect) manner.

    I will start off with an example of Washout:

    These are some posts from the XSimulator Discord server that may help to better understand washout.

    HANNIBAL02/04/2020
    yea, i been hearing more about this wash out filter... someone give us the math!!

    Insecta Tech - The Roach02/04/2020
    What do you want to do?

    Insecta Tech - The Roach02/04/2020
    lower EMALP to make it more responsive and increase EMAHP to slow the return(edited)

    HANNIBAL02/04/2020

    can u post a 3d graphic and the pose formula? @Insecta Tech - The Roach

    as an example?
    im very nooby mover user

    February 5, 2020
    Insecta Tech - The Roach02/05/2020
    First create a EMALP filter and change it to 50, then add a second filter on top of this for EMAHP and range that one to 500 and you'll see what I mean.HANNIBAL02/05/2020
    thanks.. ill try it out!!!! nice!

    Historiker02/05/2020
    I had not thought of upping the high pass filter to 500. For some reason I thought of it as a percentage with 100 being the highest possible. Thanks @Insecta Tech - The Roach for the tip.

    Insecta Tech - The Roach02/05/2020
    You're welcome

    Here is what I have learned (which is not much): I set the low pass filter higher to get the return to slow down. Higher LP = Slower movement. (I will freely admit that I do not understand what the HP filter does). My final filter settings for DCS is LP=200 HP=500 (EM)

    EDIT: Here is a screenshot showing how I set it up.

    Washout filter example.png
    • Like Like x 2
    Last edited: Feb 13, 2020
  2. Ads Master

    Ads Master

    Balance:
    Coins
    Ratings:
    +0 / 0 / -0
  3. noorbeast

    noorbeast VR Tassie Devil Staff Member Moderator Race Director

    Joined:
    Jul 13, 2014
    Messages:
    15,551
    Occupation:
    Innovative tech specialist for NGOs
    Location:
    St Helens, Tasmania, Australia
    Balance:
    113,997Coins
    Ratings:
    +9,133 / 46 / -2
    My Motion Simulator:
    3DOF, DC motor, JRK
    To avoid confusion it would help to be clear about what filters are being discussed, so as to not have SimTools newbies scratching their heads and asking questions about missing SimTools filter fields ;)

    Edited the title as likely to turn up in a search on 'filters', where newbies could easily miss the thread section.
    • Like Like x 1
    Last edited: Feb 14, 2020
  4. Historiker

    Historiker Dramamine Adict Staff Member Moderator Gold Contributor

    Joined:
    Dec 16, 2010
    Messages:
    1,930
    Occupation:
    Retired
    Location:
    Michigan USA
    Balance:
    9,463Coins
    Ratings:
    +1,822 / 13 / -1
    My Motion Simulator:
    3DOF, DC motor, Arduino, Motion platform, 6DOF
    Good point, thanks!
    • Like Like x 1
  5. Dirty

    Dirty Well-Known Member Gold Contributor

    Joined:
    Oct 15, 2017
    Messages:
    474
    Occupation:
    All the way up front.
    Location:
    Germany
    Balance:
    5,210Coins
    Ratings:
    +584 / 1 / -0
    Oh,... I just now saw this thread :)

    Indeed, I think that the vast majority of users are NOT limited by what Mover is capable of, but by their ability to understand what it even is they're trying to do and recognizing the means available in Mover to do it.

    I have invested some time in filters to understand them reasonably well in the time and frequency domain and I came out of it with two deep convictions:
    1. It is possible to get a basic understanding of the behavior of filters with little to no background knowledge.
    2. It is super important to acquire that basic understanding of filters to be able get your rig to do what you want it to do.


    Your first step on the "journey to filters" is building your own EMALP filter, just like FlyPT did in his software. You won't have to scratch your heads anymore asking yourself "What is it for","How does it work?", "How does it behave?", "What does it do to the signal?".

    NO!!!

    YOU
    will build it yourself!!! YOU will understand it! Because YOU will have created it!

    Open up excel, right now! Then create a table like this one:
    Bildschirmfoto 2020-08-30 um 21.55.20.png

    Initially the signal is zero, but at a certain point the signal makes a step. This is the step input to our filter:
    Zero --> One
    Then you plot those points out in an X-Y chart (Not a line chart! Not a bar chart!) and what comes out are the blue dots in this picture:
    Bildschirmfoto 2020-08-30 um 21.48.47.png

    For every moment in time the input signal is represented by one of those blue dots.

    Now once you have that, we will create the output signal and we will do that for every point in time.

    For the first moment (Time = 0) there is nothing we can do. The output is always exactly the input. Sorry.

    But for all following points in time we will let the output signal drift slowly towards the value of the input signal as if it was magically attracted by it through a rubber band.

    And we do this by allowing the output signal to make a step towards the value of the input signal. But this step only bridges, say, 5% of the distance.

    These 5% are our adoption rate! The amount by which the new output will close-in on its "target". Remember, we want to "dampen" the output, so we are not letting it jump all the way. It may only approach the value of the input whatever that is by 5% of the distance at a time.

    The adoption rate is called Alpha. It is a measure for how "agile" we want our filter to be. It must be between 0 and 1.

    In our Excel sheet, for every point in time, we can calculate the Output signal with the formula:

    NewOutput = Input * alpha + PreviousOutput * (1-alpha)

    What we are doing is composing the new output out of the previous output and the input. But every component gets "weighted". The input gets 5% weight (alpha) - The current output gets 95% weight (1-alpha)

    Just do this in excel, it will make you understand!

    Dirty :)
    • Like Like x 3
    • Winner Winner x 1
  6. Dirty

    Dirty Well-Known Member Gold Contributor

    Joined:
    Oct 15, 2017
    Messages:
    474
    Occupation:
    All the way up front.
    Location:
    Germany
    Balance:
    5,210Coins
    Ratings:
    +584 / 1 / -0
    I have put all of my last post into a little video. I will make a few more :)
    • Like Like x 2
    • Winner Winner x 1
    • Informative Informative x 1
  7. Dirty

    Dirty Well-Known Member Gold Contributor

    Joined:
    Oct 15, 2017
    Messages:
    474
    Occupation:
    All the way up front.
    Location:
    Germany
    Balance:
    5,210Coins
    Ratings:
    +584 / 1 / -0
    And here the next step. Changing the Excel sheet to be able to play around with the parameters:


    Notice that there are two ways to make the filter react quicker:
    1. Increase the adoption rate
    2. Increase the frames per second (decreasing the time interval)
    Follow along the exercise and play around with those parameters, see how the output curve changes. Get an intuitive understanding.

    Ignore all the bulls#!+ about frequency domain, Fourier transforms, LaPlace transforms, time invariance, homogeneity, causality, stability,... blah blah blah...

    And most of all: ENJOY IT!!! This is fun! :thumbs You are exploring! Like "Indiana Jones and the Temple of the LowPass filter" :) There are a ton of discoveries to be made.

    Cheers,... Dirty :)
    • Like Like x 2
    • Winner Winner x 1
    • Informative Informative x 1
  8. Dirty

    Dirty Well-Known Member Gold Contributor

    Joined:
    Oct 15, 2017
    Messages:
    474
    Occupation:
    All the way up front.
    Location:
    Germany
    Balance:
    5,210Coins
    Ratings:
    +584 / 1 / -0
    Made another one.


    Take a look at how that EMALP smoothens out a pseudo noise signal.
    • Like Like x 2
    • Winner Winner x 1
  9. Dirty

    Dirty Well-Known Member Gold Contributor

    Joined:
    Oct 15, 2017
    Messages:
    474
    Occupation:
    All the way up front.
    Location:
    Germany
    Balance:
    5,210Coins
    Ratings:
    +584 / 1 / -0
    Aaaaand another one :)
    • Like Like x 2
    • Winner Winner x 1
  10. Historiker

    Historiker Dramamine Adict Staff Member Moderator Gold Contributor

    Joined:
    Dec 16, 2010
    Messages:
    1,930
    Occupation:
    Retired
    Location:
    Michigan USA
    Balance:
    9,463Coins
    Ratings:
    +1,822 / 13 / -1
    My Motion Simulator:
    3DOF, DC motor, Arduino, Motion platform, 6DOF
    These are excellent Dirty, thanks for creating them. I look forward to more in the series.
    • Agree Agree x 1
  11. Dirty

    Dirty Well-Known Member Gold Contributor

    Joined:
    Oct 15, 2017
    Messages:
    474
    Occupation:
    All the way up front.
    Location:
    Germany
    Balance:
    5,210Coins
    Ratings:
    +584 / 1 / -0
    I made another one where I try to explain the concept of the "receding horizon" (for lack of a better name). I hope it sheds some light on this magical "filter constant" that lowpass, and other filters use in Mover.
    • Winner Winner x 1
  12. Dirty

    Dirty Well-Known Member Gold Contributor

    Joined:
    Oct 15, 2017
    Messages:
    474
    Occupation:
    All the way up front.
    Location:
    Germany
    Balance:
    5,210Coins
    Ratings:
    +584 / 1 / -0
    And now finally here we create those same curves directly in Mover :)

    I think it should give you a great sense of satisfaction if you see exactly those same curves created by the Mover software :)

    There are still a few concepts I'd like to illustrate in further videos:
    - Creating a highpass filter from a lowpass filter.
    - Higher order LP filters
    - Combined HP/LP systems
    - Why does a LP behave like an integrator and a HP like a differentiator?

    And once you gained a basic understanding of the matter up to there, you should be able to tackle the most important question:
    - When and why to use which filter(-system) in the context of motion cueing?

    I know this is a lot to digest. Take your time. I spent almost two years digging into this subject and have had countless occasions where I was dumbfounded for a week or a month or six. I read papers that I didn't understand, three or four times. Until I STILL didn't understand them :) I asked people for help, and got answers that I just couldn't digest.

    But after building these filters myself and then seeing them in action in my own software, it all "clicked" and only now IN HINDSIGHT (!!!) do these papers and answers make perfect sense.

    Play with those filters in Excel!
    • Winner Winner x 3
    • Like Like x 1