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 Download Package Now!
  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 here. Do not following these rules will lead to permanent exclusion from this website: Read the forum rules.

Request (Feature) Mixing vibration data into normal data

Discussion in 'SimTools DIY Version' started by Thanos, Nov 14, 2018.

  1. Thanos

    Thanos Building the Future one AC Servo at a time... or 6

    Joined:
    Jul 6, 2017
    Messages:
    533
    Occupation:
    Electronics Engineer
    Location:
    United States
    Balance:
    3,706Coins
    Ratings:
    +454 / 4 / -0
    My Motion Simulator:
    AC motor, Joyrider, Motion platform, 4DOF, 6DOF
    I'm not sure if this is the correct place to ask this, but is there way to mix vibration data from tire suspensions into normal axis? Let me explain:

    Because of the limited acceleration of the motors, some vibration data might filter out or clipped or not appear at all if mixed to normal motion cue data like heave for example. What it needs to be done so all this extra vibration effects to be able to appear on the actuator along the normal heave effect, is to have the vibration data with limited height and offset them to follow the mean value of the heave motion line. See this "hand drawn" example:

    example of mixing Vibration signal into heave with offset.jpg


    Right now such options does not exist that can do such mix of axis. Is it possible to be implemented? @yobuddy

    You can thank me later.... :)

    Thanks
    Thanos
    • Winner Winner x 1
    Last edited: Nov 15, 2018
  2. noorbeast

    noorbeast VR - The Next Generation Staff Member Moderator

    Joined:
    Jul 13, 2014
    Messages:
    13,465
    Occupation:
    Innovative tech specialist for NGOs
    Location:
    St Helens, Tasmania, Australia
    Balance:
    101,672Coins
    Ratings:
    +8,473 / 41 / -2
    My Motion Simulator:
    3DOF, DC motor, JRK
    I think you meant @yobuddy ;)
    • Agree Agree x 1
  3. yobuddy

    yobuddy Well-Known Member Staff Member Moderator SimAxe Beta Tester SimTools Developer Gold Contributor

    Joined:
    Feb 9, 2007
    Messages:
    3,650
    Occupation:
    Computer Technician
    Location:
    Portland, Oregon - USA
    Balance:
    29,549Coins
    Ratings:
    +3,688 / 10 / -0
    Hi Thanos,

    I have had a lot of emails on this subject.
    I really like chatting about new ways to make the ride even better.
    But I have to look at things from the "it can be done" side of things and what makes sense.
    Let me go over some of the things that will not work, and some that may work very well.

    I have been told this a few times "GameVibe data should be available in GameEngine."
    The problem is GameVibe was created to create sounds from certain telemetry data and not motion.
    The formulas GameVibe uses to create these sounds unfortunately will not work when we try to create telemetry cues from the same inputs.
    So it makes no sense to try to turn sound back into telemetry data and then try to send this new output back to GameEngine.
    But we could take the telemetry data GameVibe starts with and create telemetry cues.
    We just need to figure out what works best for each input.

    Let's take the example of RPM.
    If we directly imputed the RPM value into GameEngine and we assigned the output to heave.
    As we went faster the sim would raise up, and as we slowed down the sim would return to the center location.
    With GameVibe this is fine, as we can alter the frequency and volume depending on the RPM value.

    But with GameEngine, we would want, for example, a sin wave output where the amplitude and period is controlled by the RPM input.
    Then we could overlay this RPM vibration onto the sim, and not just have it raise and lower the sim with the RPM data.
    I guess what I am saying is we need to figure out how to use the data.

    I have been told this a few times "We should add ride height"
    First, RideHeight is not a universal variable found in all games telemetry.
    I know of some games with Shock Position values, but I believe this value is how far the shock is off from being centered.

    To my understanding thou, there may be a game or two that supply a variable that is a distance of how far the chassis is off the track. In theory, you could possibly use this data to make your “vibrations” and then use them along side heave to get the output you’re looking for.
    We just need to do some experiments on what works best.

    I will mention thou that when we start adding these kinds of outputs to our simulator, we are turning our sims into more of a ride-able game-pad of sorts. I’m not saying it won’t work or be really cool. Just that this data is already present in the heave stream and by amplifying stuff here and there we may only make the ride less realistic.
    But only experimenting with a few ideas will we really know.

    Take care,
    yobuddy
  4. Thanos

    Thanos Building the Future one AC Servo at a time... or 6

    Joined:
    Jul 6, 2017
    Messages:
    533
    Occupation:
    Electronics Engineer
    Location:
    United States
    Balance:
    3,706Coins
    Ratings:
    +454 / 4 / -0
    My Motion Simulator:
    AC motor, Joyrider, Motion platform, 4DOF, 6DOF
    I'm not saying it can't be mixed, I'm suggesting a way to mix it that makes sense for the motor, since otherwise the acceleration delays will filter out the vibration motion. I'm just suggesting adding a special field that the user can define how and where these vibration data can be mixed.

    for example:

    game effect: "Vibration1 "
    Effect Height: 10% of axis
    Effect Center +5%, -5% of axis
    Follows value line of: Axis 1
    "Axis 1" filtering: Filter frequencies peaks above 10hz.


    And if you wonder, yes there are motors that can do higher frequencies and actually pass vibration effects:



    Thanks
    Thanos
    • Like Like x 1
  5. SeatTime

    SeatTime Well-Known Member

    Joined:
    Dec 27, 2013
    Messages:
    2,285
    Location:
    Newcastle Australia
    Balance:
    26,778Coins
    Ratings:
    +2,580 / 29 / -0
    My Motion Simulator:
    DC motor, Motion platform, 6DOF
    I've always seen this as more of a rig/hardware/PID issue then a Simtools data one, as if you look at the live data there is plenty of detail there. - Have always used a transducer for the smaller vibrations. But will watch in interest. Just for the hell of it - Video showing my rig simulating road texture - Heave only - buttkicker transducers off.

    • Like Like x 1
    • Winner Winner x 1
    Last edited: Nov 16, 2018
  6. AussieSim

    AussieSim Member

    Joined:
    May 3, 2017
    Messages:
    74
    Location:
    Australia
    Balance:
    1,209Coins
    Ratings:
    +31 / 0 / -0
    In Nolimits2 when towing up a slope, the simtools virtual axes only produces pitch. There is no output for the clank-clank-clank-clank.

    D-Box outputs vibrations for the clank-clank through the actuators in NL2.
  7. hexpod

    hexpod http://heXpod.xyz

    Joined:
    Apr 18, 2016
    Messages:
    674
    Location:
    berlin
    Balance:
    4,434Coins
    Ratings:
    +194 / 2 / -0
    My Motion Simulator:
    DC motor, 6DOF
    Maybe at the first time, adding a simple high pass filter in the game engine would be the thing to do. I would love to experiment putting a second set of accel. data with different amplitude and a selectable low frequency cut-off.

    Go for it @yobuddy if you feel it makes sense.

    Cheers.
  8. hexpod

    hexpod http://heXpod.xyz

    Joined:
    Apr 18, 2016
    Messages:
    674
    Location:
    berlin
    Balance:
    4,434Coins
    Ratings:
    +194 / 2 / -0
    My Motion Simulator:
    DC motor, 6DOF
    @Thanos, for fast vibrations tests, I think you can send data faster and more accurately if you reduce the axis intensity in heXpod. I would give it a try.

    Best
  9. yobuddy

    yobuddy Well-Known Member Staff Member Moderator SimAxe Beta Tester SimTools Developer Gold Contributor

    Joined:
    Feb 9, 2007
    Messages:
    3,650
    Occupation:
    Computer Technician
    Location:
    Portland, Oregon - USA
    Balance:
    29,549Coins
    Ratings:
    +3,688 / 10 / -0
    This is what the Min and Max values already do thou.
    Anything over or below this value is the max for that direction.
    Take care,
    yobuddy
  10. SeatTime

    SeatTime Well-Known Member

    Joined:
    Dec 27, 2013
    Messages:
    2,285
    Location:
    Newcastle Australia
    Balance:
    26,778Coins
    Ratings:
    +2,580 / 29 / -0
    My Motion Simulator:
    DC motor, Motion platform, 6DOF
    I mirror the games sound to my Buttkicker - works well.
    • Informative Informative x 1
  11. Thanos

    Thanos Building the Future one AC Servo at a time... or 6

    Joined:
    Jul 6, 2017
    Messages:
    533
    Occupation:
    Electronics Engineer
    Location:
    United States
    Balance:
    3,706Coins
    Ratings:
    +454 / 4 / -0
    My Motion Simulator:
    AC motor, Joyrider, Motion platform, 4DOF, 6DOF
    Ok, not talking about buttkicker or other transducers.

    Not even talking about filtering , not the ones you have in mind.


    All I'm talking about is an idea to implement a special filter that would mix low amplitude signals with higher amplitude, in a way that would not filter out the lower amplitude signal because of the difference in height.

    It doesn't have to do with frequencies of the two signals. Just looking for a way to have the smaller signal follow the trajectory of the larger signal.

    Thanks
    Thanos
  12. yobuddy

    yobuddy Well-Known Member Staff Member Moderator SimAxe Beta Tester SimTools Developer Gold Contributor

    Joined:
    Feb 9, 2007
    Messages:
    3,650
    Occupation:
    Computer Technician
    Location:
    Portland, Oregon - USA
    Balance:
    29,549Coins
    Ratings:
    +3,688 / 10 / -0
    When you mix the 2 dof's in the axis assignments section of GameEngine, it would do exactly what you are looking for.
    Say you mix 70% heave and 30% RideHeight, it would mix them just like your example drawing.
    Take care,
    yobuddy
  13. BlazinH

    BlazinH Well-Known Member

    Joined:
    Oct 19, 2013
    Messages:
    2,041
    Location:
    Oklahoma City, USA
    Balance:
    14,882Coins
    Ratings:
    +1,706 / 30 / -1
    How does it not have anything to do with the differing frequencies? An analogy of what you suggest is to put high frequency mid-range and tweeter signals on the woofer instead which is largely incapable of reproducing them satisfactorily. Since the woofer is always chasing a larger target I believe the higher frequencies will mostly get filtered out or just all mucked up.
  14. AussieSim

    AussieSim Member

    Joined:
    May 3, 2017
    Messages:
    74
    Location:
    Australia
    Balance:
    1,209Coins
    Ratings:
    +31 / 0 / -0
    A linear actuator is capable of repoducing audio spectrum frequency vibration.



  15. BlazinH

    BlazinH Well-Known Member

    Joined:
    Oct 19, 2013
    Messages:
    2,041
    Location:
    Oklahoma City, USA
    Balance:
    14,882Coins
    Ratings:
    +1,706 / 30 / -1
    Okay I get your point since I compared to a woofer. But my point was intended to be that I think higher frequency signals will be drowned out whenever a larger heave signal is present unlike shown in the hand drawn example but I may be wrong. However when you separate the hardware that reproduces them then you know this won't happen.

    The first video doesn't say how many hertz are being used so I don't really know what its showing but in any case Simtool's maximum telemetry output rate is 1000Hz (but I'm sure could be more if usable).
    Last edited: Nov 17, 2018
  16. hexpod

    hexpod http://heXpod.xyz

    Joined:
    Apr 18, 2016
    Messages:
    674
    Location:
    berlin
    Balance:
    4,434Coins
    Ratings:
    +194 / 2 / -0
    My Motion Simulator:
    DC motor, 6DOF
    @yobuddy,
    It is not exactly what I had in mind. I was rather thinking about something similar to the compressor tool in the music industry. Magnifying small details and preventing the big amplitude cues from clipping at the same time.
    @Thanos, it's maybe something completely different what you was thinking about. Sorry for messing with your thread.

    Best
    Last edited: Nov 19, 2018
  17. BlazinH

    BlazinH Well-Known Member

    Joined:
    Oct 19, 2013
    Messages:
    2,041
    Location:
    Oklahoma City, USA
    Balance:
    14,882Coins
    Ratings:
    +1,706 / 30 / -1
    I believe you can accomplish this on the motor controller side just as easily since the data required is already present.
  18. hexpod

    hexpod http://heXpod.xyz

    Joined:
    Apr 18, 2016
    Messages:
    674
    Location:
    berlin
    Balance:
    4,434Coins
    Ratings:
    +194 / 2 / -0
    My Motion Simulator:
    DC motor, 6DOF
    @yobuddy

    "But with GameEngine, we would want, for example, a sin wave output where the amplitude and period is controlled by the RPM input."

    Why not just go for it?!
  19. Thanos

    Thanos Building the Future one AC Servo at a time... or 6

    Joined:
    Jul 6, 2017
    Messages:
    533
    Occupation:
    Electronics Engineer
    Location:
    United States
    Balance:
    3,706Coins
    Ratings:
    +454 / 4 / -0
    My Motion Simulator:
    AC motor, Joyrider, Motion platform, 4DOF, 6DOF
    Did anyone pay attention to the drawing i made in the first post? The issue is the larger amplitude of the larger signal, naturally clipping out the smaller signal because of the difference.

    Mixing could work for audio where the center is fixed, but for sustained positions of the actuator, say ROLL during a turn for example, will not let the actuator perform the smaller signal that naturally needs the motor to be near the center...
  20. hexpod

    hexpod http://heXpod.xyz

    Joined:
    Apr 18, 2016
    Messages:
    674
    Location:
    berlin
    Balance:
    4,434Coins
    Ratings:
    +194 / 2 / -0
    My Motion Simulator:
    DC motor, 6DOF
    I think I got your theory more or less @Thanos.

    "The issue is the larger amplitude of the larger signal, naturally clipping out the smaller signal because of the difference."

    What exactly do you mean by "vibration signal" ?

    Are you talking about a filter for existing telemetry data in order to get more details which like you are claiming are getting lost because of large amplitude movements or an additional vibration effect like rpm which could be added on the top?

    Using essentially x-plane I don't have a separate "vibration" telemetry in order to mix it with other axis.

    Please be more precise as it seems that everybody has something different in mind.

    Best