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 Mover

Discussion in 'FlyPt Mover' started by pmvcda, May 30, 2019.

  1. GruntyPig

    GruntyPig New Member Gold Contributor

    Joined:
    Apr 14, 2010
    Messages:
    9
    Occupation:
    Ice Cream QC Engineer
    Location:
    Aberdeen, Scotland
    Balance:
    - 156Coins
    Ratings:
    +4 / 0 / -0
    My Motion Simulator:
    Arduino, Motion platform, 6DOF
    Hello everybody,

    Sorry if this is a bit off topic, but hopefully someone can help me with a small problem I have been having:

    I've built a 6DOF with linear actuators with 57BLF03 motors and BLDC-8015A drivers controlled by 3 arduinos running SMC3 - and it is all working well. I'm using FlyPTs' mover software (which is great!) and playing mostly iRacing, Dirt Rally and X-Plane11.

    The problem i am having is related to sway+roll when the rig is moving quickly from one side to the other (when driving through a chicane for example). During these turns the actuators are running at their maximum speed, but because some of the actuators have less distance to travel, they are reaching their final position before the others, and this causes the rig to twist suddenly (yaw) as it reaches the end of the sway+roll pose. The actuators speeds are all equal ( I have tested this by using a heave loop in mover), but I think my problem relates to the actuator speed not being fast enough? (I'm using SFU1204 ballscrews, with 3000rpm motors, so only have 200mm per second of travel speed).

    My question is this:- has anyone else had this "yaw motion" problem? Is there any way that i can control the actuators to make them all arrive at the final pose position at the same time? Or is it possible to use some feature in Mover to make an actuator slow down as it reaches its target (or maybe the PID setting in the SMC3 Arduino code?)

    Any help would be greatly appreciated.
  2. pmvcda

    pmvcda aka FlyPT

    Joined:
    Nov 3, 2010
    Messages:
    1,394
    Location:
    Portugal
    Balance:
    10,879Coins
    Ratings:
    +1,461 / 13 / -0
    My Motion Simulator:
    6DOF

    Hi,

    Your problem is the range.
    Yaw happens because some actuators reached the limit, and others keep moving.
    You have to implement filters that fit your range.
    Or to keep the current filters, you have to scale them down with gain.

    upload_2020-3-31_15-40-5.png

    Do it in the rig module by enabling Auto Gain or changing the gain manually.
    What this does, is lower the gain each time the rig goes out of range. (so you should disable it when you reach a value you find good)

    On the top, you have an option, to stop the rig if she enters in out of range state.
    Out of range happens if any of the actuators has no range to accomplish the pose you want.
    But then, the rig stops moving while you are out of range.

    Besides gain, you can act on the actuators by using a filter like LOGISTIC, to slow them near the limit, or limit the poses ranges.
    You can also use filters in the pose values, although current usage is not the ideal because of the scale difference between rotations and linear poses.
  3. pmvcda

    pmvcda aka FlyPT

    Joined:
    Nov 3, 2010
    Messages:
    1,394
    Location:
    Portugal
    Balance:
    10,879Coins
    Ratings:
    +1,461 / 13 / -0
    My Motion Simulator:
    6DOF
    Hi,

    The spike filter is like a low pass filter
    EMALP(VALUE;parameter1)

    The parameter1 in the low pass is the intensity of the filter. 1 is no filter, big value is a lot of smooth.
    What the spike filter does is manipulate the parameter1, depending on the value variation.

    For example, you are accelerating a car at 4m/s^2, and suddenly crash against a wall that causes an acceleration of -20m/s^2.
    That generates a spike with a variation of 4-(-20)=24m/s^2.

    So, the parameter1 in the low pass is going to be 24. What this means, is that we are smoothing more when variation is big, and not smoothing if variation is low.

    But I gave it some extra parameters because that 24 is not enough to smooth such acceleration variation.

    Window, is until which variation we don't filter.
    Example, if window was 5 in the above example, any variation under 5 is converted to 1, so there's no filter under 5. The filter starts acting at accelerations above 5.

    Strength is a multiplier. If it was 3 in the above example, for a variation of 24, the smooth factor would be 3x24=72.

    Exponential is that, and exponential. With 2, in the above example the smooth factor on the low pass would be 24^2=576.

    We can combine them all:
    SPIKE(VALUE;5;3;2)
    In the example above, the smooth factor is 3*24^2=1728 (variation above 5) this spike filter is equal to:
    EMALP(VALUE;1728)
    If variation was 4.5m/s^2, then it's under 5, there's no filtering and the result is VALUE.

    Now, this is not really a EMALP, because it's dynamic, it depends on the variation of VALUE, not in the VALUE.

    There's some variants.
    They are all the same, but with some values already filled (for retro compatibility).
    They are:

    SPIKE(parameter1;parameter2;parameter3;parameter4)
    EDYNLP(parameter1;parameter2;parameter3)
    LDYNLP(parameter1;parameter2;parameter3)

    parameter1 is the value we want to filter.

    parameter2 is the window where the filter has no effect.

    parameter3 is the strength of the spike removal.

    parameter4 is the exponential degree.
    In SPIKE you can set it, in EDYNLP it's 2 and in LDYNLP it's 1.
    • Informative Informative x 2
    • Like Like x 1
  4. pmvcda

    pmvcda aka FlyPT

    Joined:
    Nov 3, 2010
    Messages:
    1,394
    Location:
    Portugal
    Balance:
    10,879Coins
    Ratings:
    +1,461 / 13 / -0
    My Motion Simulator:
    6DOF
    Hi,

    1:
    Pose limits has nothing to do with the actuators.
    Everywhere in Mover, travel=2 x range. (because zero is the middle travel usually, so we have -range and +range)
    Pose limits are to limit the final rig movement. If you don't want the rig to pitch more than 15º, you put in pitch 15º.
    You now ask why is that in the rig if we have it in the pose modules?
    That's because you can use more than one module and the pose movement is the sum of the modules you use. So in the rig you limit it in the rig, in the poses, you limit it for the poses.
    You can say, that the suspension pose can use only 10º and the motion pose another 10º.
    But that goes beyond the 15º you want in the rig. So setting it in the rig, avoids anything above 15º in case it happens between the two poses.
    The default values are big. That way, there's no limits defined by default.

    2:
    That's strange, should be a bug. I will take a look.
    • Like Like x 1
  5. benmax

    benmax Active Member Gold Contributor

    Joined:
    Oct 15, 2013
    Messages:
    181
    Balance:
    1,450Coins
    Ratings:
    +54 / 0 / -0
    My Motion Simulator:
    2DOF
    For Thanos board don’t waste Time . In fact it’s just where you click with the mouse !
    If you click in the checkbox it has no effect but into the red rectangle it works ! It seems to be just where you click the problem !
  6. pmvcda

    pmvcda aka FlyPT

    Joined:
    Nov 3, 2010
    Messages:
    1,394
    Location:
    Portugal
    Balance:
    10,879Coins
    Ratings:
    +1,461 / 13 / -0
    My Motion Simulator:
    6DOF
    The checkbox is the auto connect, wanted to reduce it to a minimum...
  7. pmvcda

    pmvcda aka FlyPT

    Joined:
    Nov 3, 2010
    Messages:
    1,394
    Location:
    Portugal
    Balance:
    10,879Coins
    Ratings:
    +1,461 / 13 / -0
    My Motion Simulator:
    6DOF
    Coming soon:

    upload_2020-3-31_23-23-47.png

    You can generate any value with the joysticks.
    For example, I use Button 1 to create noise in Heave.
    A good application could be vibration when firing in IL2 (missing in the telemetry).
    Still WIP!

    Also to remind that support for AMS2 exists through the PCARS2 source (MMF or UDP).
    Should work unless they change something in the release.
    • Like Like x 2
    • Winner Winner x 2
  8. JAD

    JAD Active Member

    Joined:
    Jan 17, 2016
    Messages:
    198
    Location:
    Australia
    Balance:
    1,384Coins
    Ratings:
    +140 / 3 / -0
    I like where your heading on joysticks as a source.
    Could I suggest a feature on your roadmap? Im sure you have a long road map of features.

    The wishlist feature is to allow additional serial outputs that are triggered by a joystick press or a keyboard shortcut.
    It would be a single shot output that connects to ports, runs the command, then closes the ports. Like a momentary switch for outputs.
    A bit different to the current outputs which uses the keyboard press as an on and off switch for the outputs.
    Im thinking of 3 separate lines of commands with a wait time at the end of each line so we can put a delay in the sequence if required.

    This is for some of us that need to send serial commands just once per evening session such as initialising and homing operations.
    Its also desirable to send position commands before starting games.

    Just a wish list item, no pressure.
    Love your Work.
    Cheers
    Last edited: Apr 1, 2020
  9. pmvcda

    pmvcda aka FlyPT

    Joined:
    Nov 3, 2010
    Messages:
    1,394
    Location:
    Portugal
    Balance:
    10,879Coins
    Ratings:
    +1,461 / 13 / -0
    My Motion Simulator:
    6DOF

    Can try to add it.
    Let's see how the joystick handling ends.
    I'm trying to make an all in one.
    It should allow multiple joystick sources, with multiple joysticks, and assignment of hotkeys to connect/disconnect outputs.
    I can add a definable hotkey to each output. Might be easier than it looks.
    But you just gave me some extra ideas.
  10. PeterW

    PeterW alias Wickie

    Joined:
    Oct 21, 2018
    Messages:
    110
    Occupation:
    Dipl. Ing. Mb (FH)
    Location:
    Germany
    Balance:
    1,045Coins
    Ratings:
    +252 / 2 / -0
    My Motion Simulator:
    6DOF
    Hi FlyPT
    thank you so much for your explanation!!
    Now I understand the Spike filters and after one day trying and playing with the parameters I can say the Spike filters work absolute great. All violent crash movements are gone - but without loosing speed, power and fine details during driving.
    I think it would be great for all other users if you add your explanation to the filter documentation.
    You are the greatest!!
    Wickie

    • Agree Agree x 1
  11. pmvcda

    pmvcda aka FlyPT

    Joined:
    Nov 3, 2010
    Messages:
    1,394
    Location:
    Portugal
    Balance:
    10,879Coins
    Ratings:
    +1,461 / 13 / -0
    My Motion Simulator:
    6DOF
    Yes, I should rewrite the explanation in the manual.
    • Like Like x 1
  12. Gabor Pittner

    Gabor Pittner Active Member Gold Contributor

    Joined:
    Oct 25, 2018
    Messages:
    184
    Location:
    Szekesfehervar Hungary
    Balance:
    1,191Coins
    Ratings:
    +83 / 0 / -0
    My Motion Simulator:
    6DOF
    Does anybody have a sample tuning for DCS? I mean sample pose from motion, DOF from value, etc..
    @hexpod ? :rolleyes:
    Last edited: Apr 2, 2020
  13. hexpod

    hexpod http://heXpod.xyz

    Joined:
    Apr 18, 2016
    Messages:
    881
    Location:
    berlin
    Balance:
    5,622Coins
    Ratings:
    +272 / 3 / -0
    My Motion Simulator:
    DC motor, 6DOF
    I guess you will be able to map whatever you want to the button of your choice (like usually in every game) and program there (in mover) whatever, vibrations bumps and so on.

    What a BRILLIANT idea !!! So simple.

    btw. I have a pretty good canons in sturmovik. I had strange cuts on those in dcs.
  14. hexpod

    hexpod http://heXpod.xyz

    Joined:
    Apr 18, 2016
    Messages:
    881
    Location:
    berlin
    Balance:
    5,622Coins
    Ratings:
    +272 / 3 / -0
    My Motion Simulator:
    DC motor, 6DOF
    I will come back to you with dcs. I had somewhere a nice profile for warbirds. It wasn’t good for modern jets.
  15. SimMeInMD

    SimMeInMD Member

    Joined:
    Aug 10, 2018
    Messages:
    48
    Location:
    Baltimore MD (USA)
    Balance:
    227Coins
    Ratings:
    +27 / 0 / -0
    @pmvcda ... Got my 6 Dof going with the new version however my pitch is reversed from what it should be. The older version of FlyPT I could click "Flip" in the check box but thats not in this version, how do I go about flipping pitch?

    THANKS!
  16. hexpod

    hexpod http://heXpod.xyz

    Joined:
    Apr 18, 2016
    Messages:
    881
    Location:
    berlin
    Balance:
    5,622Coins
    Ratings:
    +272 / 3 / -0
    My Motion Simulator:
    DC motor, 6DOF
    Strange... only pitch is reverted?
  17. hexpod

    hexpod http://heXpod.xyz

    Joined:
    Apr 18, 2016
    Messages:
    881
    Location:
    berlin
    Balance:
    5,622Coins
    Ratings:
    +272 / 3 / -0
    My Motion Simulator:
    DC motor, 6DOF
    If you want to reverse a cue, you just put a minus before the value.
    • Like Like x 1
  18. pmvcda

    pmvcda aka FlyPT

    Joined:
    Nov 3, 2010
    Messages:
    1,394
    Location:
    Portugal
    Balance:
    10,879Coins
    Ratings:
    +1,461 / 13 / -0
    My Motion Simulator:
    6DOF
    OK, joysticks seems to be working.

    Dedicated some time (to much) to solve the connect/disconnect source transition.
    Ended having to rewrite that part of the code.
    I think it's now working OK, but need people to test it after releasing the new version (maybe today).
    I could not test all the variants. Sorry.
    Example in PCARS2:
    upload_2020-4-3_16-32-33.png

    A start/stop with vertical acceleration (with gravity).
    Loops should have it solved also, unless we use square waves, that come with huge jumps already:
    upload_2020-4-3_16-35-36.png

    upload_2020-4-3_16-36-28.png

    Now trying to:
    add joystick command to start/stop sources and outputs,
    adding missing images
    solve error when renaming modules

    New build soon!
    • Winner Winner x 2
    • Like Like x 1
  19. hexpod

    hexpod http://heXpod.xyz

    Joined:
    Apr 18, 2016
    Messages:
    881
    Location:
    berlin
    Balance:
    5,622Coins
    Ratings:
    +272 / 3 / -0
    My Motion Simulator:
    DC motor, 6DOF
    thanks a LOT
  20. hexpod

    hexpod http://heXpod.xyz

    Joined:
    Apr 18, 2016
    Messages:
    881
    Location:
    berlin
    Balance:
    5,622Coins
    Ratings:
    +272 / 3 / -0
    My Motion Simulator:
    DC motor, 6DOF
    if you have time think about the "heave offset for linear rig. This could be a quick one ;-) It has to move the bit output I presume.