1. Do not share user accounts! Any account that is shared by another person will be blocked and closed. This means: we will close not only the account that is shared, but also the main account of the user who uses another person's account. We have the ability to detect account sharing, so please do not try to cheat the system. This action will take place on 04/18/2023. Read all forum rules.
    Dismiss Notice
  2. 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!
  3. 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
  4. 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. pmvcda

    pmvcda aka FlyPT

    Joined:
    Nov 3, 2010
    Messages:
    1,846
    Location:
    Portugal
    Balance:
    14,096Coins
    Ratings:
    +2,169 / 16 / -0
    My Motion Simulator:
    6DOF
    Yes, I will post it tomorrow.
    It's not 100% but with so many people at home, better to give some occupation.
    • Like Like x 3
    • Winner Winner x 3
  2. pmvcda

    pmvcda aka FlyPT

    Joined:
    Nov 3, 2010
    Messages:
    1,846
    Location:
    Portugal
    Balance:
    14,096Coins
    Ratings:
    +2,169 / 16 / -0
    My Motion Simulator:
    6DOF
    FlyPT Mover 2.9.3

    upload_2020-3-19_22-38-17.png

    Pages of the filter manual:
    upload_2020-3-19_22-48-33.png

    So, I didn't achieve all the objectives for this version.
    But knowing most of you are at home (or should be), and considering the current build state, I think I can share it with everyone.

    WARNING!

    I'm really sorry, but old setups are not compatible with this version.
    You can try to open them, but most of the fields wont be filled.
    This was needed to simplify code and make updates simpler.


    KNOWN PROBLEMS

    - Sources that access shared memory (MMF), are slow when trying to connect with auto connect.
    This affects calculation time. So it's recommended to use just the source you want or if you are using multiple sources in the setup,
    don't enable auto connect in the sources you are not using.


    GENERAL

    - File management changes:
    No more last setup. Mover starts empty.
    Double click in file allows you to open a setup if you associated the .Mover extension in the options.
    Drag and drop file in Mover allows you to merge the selected modules.
    New in the menu to erase all modules and options to default and start a new setup from scratch.
    Open to erase all modules, config to default and open the selected modules from a file.
    Merge to merge the selected modules from a file with the current setup.
    Save to save the current setup.
    Save as to save the current setup with a specific name.
    When erasing modules, tests for changes and asks if you want to save changes.
    When erasing output modules that are connected, stops and tells the user to disconnect them.

    - From now on, all builds are in 64 bits.

    - In the options, we can associate the ".Mover" files to the running executable.
    But if you change the location of FlyPT Mover.exe it stops working. If that happens you have to associate the extension again to update the location.

    - We can now change the name of the modules to make it easier to identify each module.
    Click in the upper right arrow of the module and select Rename. Edit the name in the text box.
    You can repeat names without a problem, but this is here to help you to identify each module.

    - Corrected bug in calculations, that generated Nan because of a division by zero in the transitions.

    - New timer organisation, reducing number of active timers and solving a problem in the calculations loop when in high precision mode.

    - Added hot keys to start/stop all sources and all outputs. Works from outside of the application, so be careful with the selected keys.
    It's possible to change the hot keys in the options.


    FILTERS

    - Optimised filter transition, with smaller footprint in calculations.

    - New basic filtering system (simplified, but in it's first step).

    - New graphic of input/output to help visualize filtering results.

    - New/Changed filters:
    INT = Integration, for example to calculate speed from acceleration or position from speed.
    DIF = Differentiation, for example calculate speed from position or acceleration from speed.
    CUBIC = Cubic expression of type y = a*x^3 + b*x^2 + c*x + d (for testing purposes).
    CUBIC3 = Cubic expression of type y = a*x^3, good to use in traction loss.
    MALP = Median average low pass (not exponential), similar to EMALP, but uses more memory.
    MAHP = Median average high pass (not exponential), similar to EMAHP, but uses more memory.
    SPIKE = EDYNLP They are the same. It's the preferred filter to remove spikes.
    MINCROP = Remove everything under a certain value.
    MAXCROP = Remove everything above a certain value.
    ROLLOVER = Rollover filter to roll between -value and +value, where value is specified by user. This replaces the rollover input values
    NOISE = Generates noise based on the received value (amplitude) with a specified update frequency based on calculation rate.
    EDYNLP = SPIKE Now with two parameters, first is from wich value we start filtering.
    ROUND = To round a value.

    - Removed filters:
    E2DYNLP is replaced by a new parameter in EDYNLP.


    SOURCES

    - Some new sources.

    - In the noise source, there's a new checkbox to generate the same noise to all selected values (for testing purposes).

    - No more rotation variation in the values (did not produce the expected results).

    - No more rollover in the values. This is replaced by the new ROLLOVER filter.

    - Many corrections and optimisations in all the sources.

    - Reorganisation of the windows.

    - New forward to another UDP port for all UDP sources. This allows you to send resend the data to be used in another application (problem specific to UDP).

    - We can now record multi sources (like aircraft's with sources for ground and air).

    - Player can play multi sources.

    - Player can play zip files generated by PhyPhox. It can play with just one of the streams or all three streams supported (please see manual).

    - Added surface type to the possible source values.


    POSES

    - Default gain values for linear pose components are now 10 by default. Be careful!

    - Suspension module, starts with an high pass filter by default applied to the suspension position. This should give you the "rumble" of the suspension.

    - Increased range in rotations (was limited to 180).

    - Mix surge and sway in rotations as now a gain of 1.0 by default.

    - Removed translations in world coordinates. Was not working and doesn't make sense to translate in world coordinates with the rig tilted.

    - New basic motion modules with limited filtering capabilities.
    This was made trying to simplify the use of Mover.
    You can always generate the advanced version from the basic one.


    RIGS

    - Corrected bug that allowed some rigs to move in the 3D view when locked to stay on last possible pose (just a drawing problem).

    - Corrected bug in 3DOF rigs with vertical linear actuators, that caused incorrect calculation with a center of rotation different from origin.

    - We can now filter the pose of the rig and limit it's pose ranges.
    This filter is shown in the 3D view as opposed to the actuators filters.

    - Added sliders for each actuator in the rig modules.
    We can now test rig actuators individually, visualize it's motion in the slider and test the correspondance of the actuator in Mover with the one in the rig.
    This is not shown in the 3D preview.

    - Corrected and increased text on some images of the rigs.

    - Stewart platforms, detect now when we are in a critic angle to reach singularity.
    We can define the angle. Motion is stopped when we enter that angle range.
    Singularity happens when the actuators are in the same plane of the top platform.


    OUTPUTS

    - Corrected bug, that did not allow the UDP output to send data to all the installed network cards. Now UDP should be sent to all IP's and all network cards.

    - Auto connect is now working.

    - When start or stop occurs, the defined string is sent at least one time. If there's a defined time, it keeps sending that data at the defined rate while inside the time frame.

    - You are now asked if you want to stop connected outputs before closing them (by opening another file, deleting them or closing Mover).


    GRAPHIC VIEWER

    - Added actuators bit output besides % of output.


    3D VIEWER

    - Now stores position in setup.

    - You can select between perspective or orthographic projection.

    And many other small changes.


    INCLUDED IN THE DOWNLOAD

    - There's one part of the manual dedicated to filters in PDF.

    - The required DLL's or scripts to use some games.

    - Samples for some rigs and sources.


    Download in the first post!
    • Winner Winner x 9
    • Friendly Friendly x 1
    Last edited: Mar 19, 2020
  3. hexpod

    hexpod http://heXpod.xyz

    Joined:
    Apr 18, 2016
    Messages:
    1,093
    Location:
    berlin
    Balance:
    7,091Coins
    Ratings:
    +336 / 5 / -0
    My Motion Simulator:
    DC motor, 6DOF

    One word. Enormous
    Two words ? Spectacularly Gigantic ;-)
    • Agree Agree x 3
  4. hannibal

    hannibal Active Member

    Joined:
    Sep 29, 2018
    Messages:
    677
    Balance:
    4,489Coins
    Ratings:
    +297 / 4 / -0
    My Motion Simulator:
    6DOF
    no words...
    just utter amazing-ness.
    thank you for everything @pmvcda <3
  5. Historiker

    Historiker Dramamine Adict Gold Contributor

    Joined:
    Dec 16, 2010
    Messages:
    2,158
    Occupation:
    Retired
    Location:
    Michigan USA
    Balance:
    9,176Coins
    Ratings:
    +2,156 / 19 / -1
    My Motion Simulator:
    3DOF, DC motor, Arduino, Motion platform, 6DOF
    Odd thing happening with 2.9...each force is mixed up. Heave is yaw, yaw is heave, Sway is pitch, etc.

    Each works correctly just as a different force.

    The values for each force is selected correctly as well.

    Each actuator is set up properly, and rotation on my gear motors is correct, etc.

    And the graphic viewer shows the correct orientation/movement.

    Regardless of which value I choose for the force it remains the same.

    Attached Files:

  6. hexpod

    hexpod http://heXpod.xyz

    Joined:
    Apr 18, 2016
    Messages:
    1,093
    Location:
    berlin
    Balance:
    7,091Coins
    Ratings:
    +336 / 5 / -0
    My Motion Simulator:
    DC motor, 6DOF
    This can happen. Depending on controller art the option “Output swap swapped” needs to be activated
  7. Historiker

    Historiker Dramamine Adict Gold Contributor

    Joined:
    Dec 16, 2010
    Messages:
    2,158
    Occupation:
    Retired
    Location:
    Michigan USA
    Balance:
    9,176Coins
    Ratings:
    +2,156 / 19 / -1
    My Motion Simulator:
    3DOF, DC motor, Arduino, Motion platform, 6DOF
    Do you mean the motor controller (in my case the arduino/Sabretooth combo)?

    In Mover I have checked and unchecked "output swap swapped", neither make a difference.

    It is not that they are moving the opposite direction, or even the wrong direction. The motion is perfect, but just not for the force that I am testing. Heave does exactly what yaw does, regardless of the value chosen, and Yaw does a perfect heave, regardless of what value is chosen.

    Edit: It is fixed. No idea why. I rebooted and started over from scratch, now everything is working.
    Last edited: Mar 20, 2020
  8. hexpod

    hexpod http://heXpod.xyz

    Joined:
    Apr 18, 2016
    Messages:
    1,093
    Location:
    berlin
    Balance:
    7,091Coins
    Ratings:
    +336 / 5 / -0
    My Motion Simulator:
    DC motor, 6DOF
    To pout it clear, if I uncheck this feature my:
    Sway is pitch
    Surge is roll
    Heave is yaw
    Yaw is heave
    Roll is surge
    Pitch is sway

    Thanks
    • Friendly Friendly x 1
  9. Historiker

    Historiker Dramamine Adict Gold Contributor

    Joined:
    Dec 16, 2010
    Messages:
    2,158
    Occupation:
    Retired
    Location:
    Michigan USA
    Balance:
    9,176Coins
    Ratings:
    +2,156 / 19 / -1
    My Motion Simulator:
    3DOF, DC motor, Arduino, Motion platform, 6DOF
    Thanks Hex, that might have worked. Although testing with it checked and unchecked made no difference. I rebooted, deleted everything and started from scratch and it works now.
  10. hexpod

    hexpod http://heXpod.xyz

    Joined:
    Apr 18, 2016
    Messages:
    1,093
    Location:
    berlin
    Balance:
    7,091Coins
    Ratings:
    +336 / 5 / -0
    My Motion Simulator:
    DC motor, 6DOF
    Strange...
    I can see the difference instantly.
  11. Trigen

    Trigen Active Member

    Joined:
    Nov 25, 2018
    Messages:
    472
    Balance:
    2,826Coins
    Ratings:
    +176 / 1 / -0
    My Motion Simulator:
    2DOF, 3DOF, DC motor, Arduino
    Fantastic! I see in Multi direct (Direct works) there is no graphic curve on the filters to visualize whats happening but pose from motion or direct works fine so i can use those to visualize it and then transfer it. For lateral acceleration is does work in multi direct but not long vert roll acc and yaw speed. Not tried any others. Actuator filter also works. Really hope this can be fixed soon as its a great help

    It would also be amazing in a future version if you could copy and paste the directs as i need to input the same values x4-5. As far as i know this is not possible now without editing the. mover file

    no curve MD.png
    Last edited: Mar 20, 2020
  12. pmvcda

    pmvcda aka FlyPT

    Joined:
    Nov 3, 2010
    Messages:
    1,846
    Location:
    Portugal
    Balance:
    14,096Coins
    Ratings:
    +2,169 / 16 / -0
    My Motion Simulator:
    6DOF
    Good idea,

    I'm adding a duplicate to the modules (that allow duplication).
    The graphic problem is an easy fix. Don't know how I missed this.
  13. pmvcda

    pmvcda aka FlyPT

    Joined:
    Nov 3, 2010
    Messages:
    1,846
    Location:
    Portugal
    Balance:
    14,096Coins
    Ratings:
    +2,169 / 16 / -0
    My Motion Simulator:
    6DOF
    @hexpod , thank's for answering.

    and for helping in the development!
    Many enhancements come from your feedback.

    THANK'S! :thumbs
  14. hexpod

    hexpod http://heXpod.xyz

    Joined:
    Apr 18, 2016
    Messages:
    1,093
    Location:
    berlin
    Balance:
    7,091Coins
    Ratings:
    +336 / 5 / -0
    My Motion Simulator:
    DC motor, 6DOF
    My pleasure.

    It would be really the most convenient if we could have filtering working for testing single actuator feature.

    You think a small update on this could be possible?
  15. Historiker

    Historiker Dramamine Adict Gold Contributor

    Joined:
    Dec 16, 2010
    Messages:
    2,158
    Occupation:
    Retired
    Location:
    Michigan USA
    Balance:
    9,176Coins
    Ratings:
    +2,156 / 19 / -1
    My Motion Simulator:
    3DOF, DC motor, Arduino, Motion platform, 6DOF
    The single actuator sliders are great for testing rig settings. Thanks for everything
  16. JAD

    JAD Active Member

    Joined:
    Jan 17, 2016
    Messages:
    205
    Location:
    Australia
    Balance:
    1,446Coins
    Ratings:
    +141 / 3 / -0
    Youve outdone yourself again.
    Your continuous work on this project is fantastic
    Love your work.
    I'll have a good run of this version over the weekend.
    Cheers.
    • Agree Agree x 1
    • Friendly Friendly x 1
  17. Trigen

    Trigen Active Member

    Joined:
    Nov 25, 2018
    Messages:
    472
    Balance:
    2,826Coins
    Ratings:
    +176 / 1 / -0
    My Motion Simulator:
    2DOF, 3DOF, DC motor, Arduino
    Im having another issue. Its related to the traction loss. And just a disclaimer i have some working memory issues that makes it very hard for me to keep 2 (if i look at one page and then another any rule i need to remember from the first is gone) things in my head at the same time where normal people can do 3-4 easily. So i apologize if im off but ive spent 4 hours trying to get this to work and figuring out how to explain it.

    Input number from games turning the same way
    lateral acc positive
    Yaw speed negative.

    What i need is for traction loss/yaw speed to go negative but not positive and not go below 0
    If i add a min crop filter i wont go below 0 but it will still give positive values when you turn the other way.

    To explain another way.
    Flaps one goes up with sway and TL counteracts it. However TL wont reduce the flaps below 0 as its cropped there. also it should not add any positive value on top of sway when you turn the other way TL now gives positive numbers

    If i use the Loop and they both have positive values at the same time i can invert one channel and they will directly counteract each other. Then i min crop one channel and max crop the other. This is essentially what i want. You can also see when i add the Cubic3 filter the deadzone will have its desired effect. So that leads me to conclude that if Yaw speed was reversed in the game plugins it would work just fine.



    Here's with it looped and how it should be. As you can see Yaw still dipps it below and the workaround is the global filter which i would very much prefer not to use as it interferes with my other forces that are allowed negative.



    Here's a video with other values the player from AC and you can see when it turns the other way and suddenly adds a lot to the axis.





    Im guessing its not much i can do about it but any insight is welcome. For a normal single motor traction loss this is a none issue but if combine with other forces it becomes an issue.
    Last edited: Mar 20, 2020
  18. pmvcda

    pmvcda aka FlyPT

    Joined:
    Nov 3, 2010
    Messages:
    1,846
    Location:
    Portugal
    Balance:
    14,096Coins
    Ratings:
    +2,169 / 16 / -0
    My Motion Simulator:
    6DOF

    In the cubic you can use a negative number to invert it.
    Maybe use the SIGN and MUL filters.
    SIGN gives you -1 ou +1 depending on the value being negative or positive.
    MUL multiplies a value with another one.

    upload_2020-3-20_16-42-38.png
    Problem here is that for you to increase the dead zone, the field needs more zeros. I can add them to all the numbers.

    Maybe better to use ABS:
    upload_2020-3-20_16-50-17.png

    Or force it zero for negative numbers:
    upload_2020-3-20_16-53-43.png

    Take a look at the cubic also. That might also help:
    upload_2020-3-20_16-45-8.png

    But honestly, I have some difficulty understanding your problem. That's something I need to look better.

    While doing this, I noted there's a bug that identifies some strings has invalid filters while they are valid...
    • Useful Useful x 1
  19. Trigen

    Trigen Active Member

    Joined:
    Nov 25, 2018
    Messages:
    472
    Balance:
    2,826Coins
    Ratings:
    +176 / 1 / -0
    My Motion Simulator:
    2DOF, 3DOF, DC motor, Arduino
    No worries its a tricky one. Ive actually tried all those combinations. You can set the crop either on top or in the cubic filter, it dosent actually make any difference. In fact just ignore the cubic and everything except crop, it dont actually make any difference to what i need to achieve. That is without the workaround. Ill be repeating myself a bit here but hopefully it will help it all make sense.

    What happens is that since i need to invert both channels (Yaw gives negative and Sway/lateral positive in a right turn) for them to work opposite and essentially cancel each other out. If both gave positive i'd just invert one channel and put Max crop on one and Min crop on the other.

    To summarize
    This is just 1 flap in the Gseat, namely Axis 1
    The main issue is that Yaw TL will take my bit output below 512 if i use a min crop. This is what i need for the forces to cancel each other out and depending on the numbers and gain and dead zone Yaw (TL) will do less than Lateral (Sway). Thing is i cant have it go under 512 and thats what i use the global Min crop for.

    Using Max crop on yaw instead of reducing the axis it will allow it add cause its now allowed to use positive numbers.Then it will max out the axis
    Using Min crop on yaw will make it reduce the axis but since it dosent actually have a Crop to stop it at 0 or 512 bit output it will just got to 200 bit output. Adding global Min crop will fix that issue.

    So, like mentioned if Both Lateral acc and Yaw speed had the same direction of force. That is both have positive values in a left turn this would most likely be fixed. Of course that would require you to rewrite every plugin and although its probably just switching a sign i dont know if its needed for other things. Also it really is a minor but a bit of an annoying issue haha. It took me a while to figure it out. There's no rush though, im sure there are lots of other great things for you to do first

    Its also really hard to see because it works just fine if you use a loop since it will give positive values to both so the only real way to test it properly is from running a recording of the game.

    On a side note i absolutely love the software and its so nice to be able to just Sub a tiny bit if i need to tune my axis instead of crawling into small spaces and doing it on the HW for a 1mm change.

    Here's a pic without the global crop:

    negative.png
    Last edited: Mar 20, 2020
  20. pmvcda

    pmvcda aka FlyPT

    Joined:
    Nov 3, 2010
    Messages:
    1,846
    Location:
    Portugal
    Balance:
    14,096Coins
    Ratings:
    +2,169 / 16 / -0
    My Motion Simulator:
    6DOF
    You can invert the values received by replacing VALUE with GAIN(VALUE;-1) or MUL(VALUE;-1) (they are the same)
    I can add an input gain besides the output one to make it easier, like we have in the pose from motion.

    But this is just a fast answer, I'm going to look better at the problem.
    • Like Like x 1