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

Discussion: Issues with 6DOF

Discussion in 'Ready, set, go - Start your engines' started by Trip Rodriguez, May 29, 2019.

  1. Trip Rodriguez

    Trip Rodriguez VR Pilot

    Joined:
    May 8, 2016
    Messages:
    675
    Location:
    Lake Ariel, Pennsylvania
    Balance:
    3,920Coins
    Ratings:
    +330 / 6 / -0
    My Motion Simulator:
    6DOF
    UPDATE: For anyone finding this thread, I want to mention before you begin reading that thanks to awesome people in this community such as @Dirty @pmvcda and @hexpod all (or at least nearly all) of these problems have been solved by improvements made to SimTools (and/or FlyPT Mover and heXpod) and to the DCS export.lua.

    Original text follows:
    -------------------------

    Hello folks, I was prompted by Dirty to make our email conversation public so others could participate.

    Please note: This conversation is exclusively for discussing 6DOF Stewart platforms running proper inverse kinematic software such as HeXpod (hexpod.xyz) for SimTools. Please discuss only problems and solutions for 6DOF here.

    The following is a list of complaints I've had since I built my sim that I have not been able to resolve to my satisfaction even with over a hundred hours of tuning. In theory basically everyone with a Stewart type rig is having the same problems, but most are not so fussy as Dirty and I! The problems persist using SimTools, BFF, and X-sim.

    One more disclaimer. I have not tried HeXpod in around seven months, so the most recent improvements could have fixed some of this. Based on what I have learned though I don't believe this is the case. I am putting my sim back together (after making mods) and will be installing and testing HeXpod starting in the next few days.

    Some of these are only an issue in flight simulators, and others may be much less noticeable in racing sims so they may not apply to some readers. Racing simulators don't need the super smooth motion that flight sims do.
    -----------------------------------------------------------------------------------------------------------
    Problem 1: Rolling through inverted. If I fly inverted and then initiate a roll (at least in DCS with BFF) the sim rolls the wrong way! Obviously this causes other issues as well with rolling through inversion but that is the most extreme example. Immelmann turn is a mess! (I believe Dirty has a modified LUA that fixes this).

    Problem 2: (I think you have this fixed already too) Pitch past 90 degrees (at least In DCS with BFF) gives false (unexpected and incorrect) cues. (I believe Dirty has a modified LUA that fixes this).

    Problem 3: If I adjust for satisfying heave in ordinary flight, pulling hard on the stick feels like hitting a huge bump with a car! The movement is too harsh, like nothing I have ever felt in an aircraft. Similar issue with touchdown bump but I solved this in BFF with the ground detection. When on ground I apply exponent to heave cues. The problem is caused because much more G-force results from a hard pull on the stick than from a touchdown bump, or that feeling of lift on takeoff. If I adjust so pulling hard on the stick feels right, I get basically no heave at all any other time.

    Problem 4: I think I need asymmetrical forward acceleration/deceleration cues. If I adjust for satisfying takeoff acceleration, when I hit the brakes it feels like I am standing on my nose! I have implemented a very crude partial compensation for this by adjusting actuator rods so at neutral position the sim is tilted back probably about 10 degrees or more. It helps a bit but not a total fix and imagine it will mess with sim geometry.

    Note: For problem 3 I believe all I need is to be able to tell the sim that when heave forces in game exceed a certain number (say 3 G's) it is to treat it the same way as 3 G's. For problem 4 I would like to be able to set max cue for negative surge accelerations to whatever feels right. So I can tell it to only use maximum 75% of available sim pitch angle for negative surge (deceleration) of aircraft, but still allow it to use 100% of sim pitch angle for postive surge (aircraft acceleration) movement.

    Problem 5: Too much latency using BFF and Thanos board for flying high performance jets and other fast large cues. Most noticeable when doing a hard aileron roll in modern fighters. I do not know where the latency mostly comes from.

    Problem A1: Gearbox backlash causing vibration on large heave movements and other effects making things much less smooth. (This one is hardware related not software so it's really a separate discussion, but I have come up with a solution that I feel nearly eliminates the problem which I will share in a week or two when it's done and tested).
    Last edited: Jul 5, 2019
  2. yobuddy

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

    Joined:
    Feb 9, 2007
    Messages:
    5,161
    Occupation:
    Computer Technician
    Location:
    Portland, Oregon - USA
    Balance:
    48,162Coins
    Ratings:
    +5,036 / 16 / -0
    Hi Buddy,
    For Problem 1 and 2, if there is a updated LUA script to fix these can we update it in the plugin itself?

    Problem 3, we will have to see if v2.4 with its new vastly improved filters will help with this.
    And if I knew what should change when on the ground, we could build that fix into the plugin itself.
    (Like if on ground output is 70% of in air, no heave, etc.)

    btw, this is already happening with your min/max values, anything over or under these values are simply max or min output.

    Problem 4, maybe have a higher Max value than the Min for surge (or the other way around)?
    Also, custom plugins can be made to send pretty much anything for Roll, Pitch, Heave...

    Problem 5: Ive seen the Thanos boards fly, so i have to believe its some settings or a conflict?

    Problem A1: sweet, can't wait to see it!
  3. Trip Rodriguez

    Trip Rodriguez VR Pilot

    Joined:
    May 8, 2016
    Messages:
    675
    Location:
    Lake Ariel, Pennsylvania
    Balance:
    3,920Coins
    Ratings:
    +330 / 6 / -0
    My Motion Simulator:
    6DOF
    @yobuddy Thanks for the great reply! I will be testing the suggestions you made here very soon and will let you know how it goes. Keep in mind, for DCS and X-Plane up until now I've always run BFF 6DOF software. I'm just now switching those over to SimTools.

    I don't know a darned thing about... well about pretty much anything! Anyway I don't know how to code and such but I'm very happy to do the legwork to get all the info needed in one place so we can get the most out of DCS World.

    If you don't just want to fly straight and level like an air taxi DCS world is the sim for you. AFAIK it blows everything else away once you start with stalls, spins, slips, and aerobatics. It's also IMO the ONLY good super realistic helicopter simulator. Gazelle has been plagued with flight model issues, but the Huey and Mi-8 are awesome (and challenging because they are so primitive) and the Black Shark flies really nicely but it's a little too easy to handle a coaxial helicopter for my taste. =P For some reason though the Black Shark feels extra amazing on my 6DOF.

    As for the "on ground" thing:
    First thing is DCS doesn't have an on-ground specific signal. I have instructions however on how to get it via compression of landing struts etc. which I can share here since you seem to have found my thread. =)

    More to the point though, what BFF has for this is the ability to set "on ground" cue sensitivity and "in air" sensitivity separately for each cue axis.

    For example, I set heave to 1.0 in the air, but 1.4 on the ground. This helps really bring out the landing bump and runway surface.

    I also ramp up sway (including roll for sway) a lot "on ground", since I feel it's something that you feel a lot more on ground.

    I ramp up surge on ground as well, to feel the acceleration when you throttle up and release the brakes without having it constantly maxing out the surge cues every time I change the throttle setting in the air.

    If you have any questions let me know.

    ------------
    Here is the info on how to get "on ground" indicator for DCS World for anyone who might be able to help get this working. This info came to me from Andrei of "Simshaker for Aviators" and I'm very grateful he shared it. =)

    "in general, to detect touchdown in DCS one should look for each Gear Strut Compression value change.

    Once it changed one can play touchdown FX proportionally to vertical acceleration at that moment.

    To get strut values one can use LoGetAircraftDrawArgumentValue(n) function in DCS Export API.

    n values are
    1 for Strut compression nose gear
    4 for Strut compression right gear
    6 for Strut compression left gear
    ----------------
    Additional relevant info: Dirty told me to take a look at this relative to the "on-ground" detection but I haven't got to check it out yet as I've been spending 100% of my time getting my sim reassembled. https://github.com/Dirt-e/DCS-Export-Server-Simple

    And this is from Siddharta describing how to fix the pitch and roll problems.
    -----------
    In General:
    The value pitch_final and roll_final are used instead of mySelf.Pitch and mySelf.Bank.
    1.
    You just have to make sure that all needed values are avaible in the export lua. These are:
    LoGetAccelerationUnits(), LoGetAngularVelocity(), LoGetADIPitchBankYaw(), LoGetSelfData()

    2.
    The time stamp:
    local t = LoGetModelTime()
    must be just befor the socket com starts


    3. These things:
    pitch_final = 0 -- Finaler Pitchwert absolute ohne invert
    roll_final = 0 -- Finaler Rollwert mit Rollrate
    roll_climb = 0 -- Steigerung durch Rollrate pro Frame
    finalquarter = 1
    t = 0
    Must be in in the very top in function LuaExportStart()


    Thats it!

    ------------

    There are also DCS World LUA's from @Dirty and @RiftFlyer but it's way way past my bedtime! I'll try to find the best stuff and link it in my next reply here.

    I hope we can get this working as soon as possible. Between Dirty's fix for rolling through inversions etc. (which I haven't got to try yet) and this SimTools will be able to give a much better DCS experience!

    Off Topic: @yobuddy , yourself and @noorbeast are about the best forum admins I've ever had the pleasure of mingling with. You guys keep such a positive vibe and don't go around closing any thread that says something you don't like but still things stay amazingly civil considering this is a pretty big community. Awesome work from all the folks who work on Simtools itself, the plugins, and forum admin.
    • Like Like x 1
    Last edited: Jun 1, 2019
  4. pmvcda

    pmvcda aka FlyPT

    Joined:
    Nov 3, 2010
    Messages:
    1,868
    Location:
    Portugal
    Balance:
    14,203Coins
    Ratings:
    +2,181 / 16 / -0
    My Motion Simulator:
    6DOF
    Hi,

    So can we get on ground separated from flying info?
    And when flying, is the ground info zero.?

    In my new program, I'm giving the Chance to mix sources and poses, so maybe generate one for each and mix them in the end.

    Monday I will take a better look at this.
  5. yobuddy

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

    Joined:
    Feb 9, 2007
    Messages:
    5,161
    Occupation:
    Computer Technician
    Location:
    Portland, Oregon - USA
    Balance:
    48,162Coins
    Ratings:
    +5,036 / 16 / -0
    Its the same info coming from the same vars buddy.
  6. Trip Rodriguez

    Trip Rodriguez VR Pilot

    Joined:
    May 8, 2016
    Messages:
    675
    Location:
    Lake Ariel, Pennsylvania
    Balance:
    3,920Coins
    Ratings:
    +330 / 6 / -0
    My Motion Simulator:
    6DOF
    @pmvcda, I think for the ground detection the simple on/off functionality of BFF is definitely adequate. I simply give a 30 or 40% boost to heave when "on ground". Similar boosts (I don't recall numbers) for sway cues and surge cues. It works great! The idea of blending the two sounds like it could be really good as long as we can fully control the blend. When I touch down I want it to be instant (and give nice touchdown bump) but taking off blending could be nice as the wings start lifting weight off the undercarriage.

    I do think it's important that the user be able to tweak the ratio of in-air cues to on-ground cues for their particular sim given variable high frequency response etc. across different setups. Also the ideal ratio may change pretty drastically depending on what aircraft the sim pilot prefers.
    • Like Like x 1
    Last edited: Jun 2, 2019
  7. Trip Rodriguez

    Trip Rodriguez VR Pilot

    Joined:
    May 8, 2016
    Messages:
    675
    Location:
    Lake Ariel, Pennsylvania
    Balance:
    3,920Coins
    Ratings:
    +330 / 6 / -0
    My Motion Simulator:
    6DOF
    Hello again friends. I want to discuss with you guys (especially @hexpod , @Dirty , @pmvcda proper cues for flight sim. The main topics being rolls, loops, and inversions.

    T.L.D.R.- We need separate completely separate controls for flight sim change in angular velocity, and bank angle. If we don't have both, we can't properly simulate uncoordinated turns, aileron rolls, etc. Also we need controls for sustained lateral G-force to roll cue but I assume we already have that.

    Long explanation coming, sorry!

    I was trying to figure out what the forces would be in an aileron roll (very different forces from a barrel roll!) etc. and I had an idea so I did a search. I think this video contains some very interesting info for us, and I would like to discuss how we can achieve proper cues for these things.

    You will see that in an aileron roll the water is being acted on primarily by earths gravity and aircraft forces are pretty minimal. This is as opposed to a barrel roll where the primary force felt is perpendicular to the wing which you can see a little later in the video. @Dirty I know this is counter to what you said about gravity but for aerobatics these are realistic cues as you can see in the video.

    I'm trying to figure out how to get the proper cues for these two situations.

    In barrel roll the aircraft is pulling constant positive G-force perpendicular to the wing so it is easy. Use just angular velocity. When pilot initiates roll you will feel the wing drop so if you are doing barrel roll left the simulator rolls left. Once barrel roll is in progress the roll axis of the motion sim should wash out to level and stay there as long as the barrel roll continues. To end the roll the angular velocity now changes in the other direction (negative acceleration) so the right side of sim would drop, and then the roll axis of the sim would wash out again.

    In aileron roll you are not causing the aircraft to pull vertical g-force, so you would feel the roll initiate (change in angular velocity just like barrel roll, but then instead of washing out you want to give cues in the direction of earth's gravity. So again we do roll to the left for the example. Simulator rolls left wing down, but then instead of washing out the sim should stay rolled left a bit. It should return to level as the aircraft is inverted, and then should start rolling right a bit to cue for earths gravity now pulling in that direction (see water in glass video above). As long as the roll continues the platform should continue to vary the cue for direction of earth's pull. And again, to end the roll we have an angular velocity change opposite of initiating the roll so the platform should roll right to simulate that (regardless of current orientation to the ground. If the roll is stopped with the aircraft not in normal orientation (such as in an aerobatic four-point roll) the angular velocity cue should occur, but then the platform should wash out not level, but to cue the direction of earth's pull. As long as angular velocity remains the same the simulator should increase left roll angle until it is at 90 degree left bank angle, and then should start decreasing it again as it passes 90 degrees continuing toward 180 degrees. As aircraft comes to 180 degrees from normal flight (inverted) the platform comes back to level again. As aircraft continues the left roll, the simulator then would begin to roll to the right to simulate direction of earths pull increasing until aircraft is at 90 degree right bank angle, and then decreasing as it continues toward zero bank angle, arriving back at center position (roll axis level) as the aircraft returns to normal flight. If the roll continues it would again begin to roll left a bit and continue as described. Bank angle should only use a portion of simulator roll cue, so that if the pilot (again back to my left roll example) stops the left hand roll at 90 degree right bank angle the simulator can still cue right hand roll for the (negative) angular velocity acceleration.

    So that gets more complicated. I will describe the cues for a four-point aileron roll to the left.

    Pilot initiates left roll: Simulator cues for change of angular velocity and rolls to the left.
    Roll continues until 90 degree left bank: Simulator stays somewhat rolled left (changing sim roll axis angle as aircraft bank angle changes) because of the direction of gravity (because this is an aileron roll not a barrel roll). For four point roll the pilot quite suddenly moves the stick toward center to stop the roll at 90 degree left bank. Simulator cues this acceleration by quick roll to the right, then washes out not to center but to left bank angle and stays there. Pilot then resumes the left roll, so there is a quick left roll cue from the sim, and then the angular velocity cue washes out but the sim continues to cue for direction of earth's pull, now rolling back toward center position. Pilot stops the roll at 180 degrees for the four point roll, so the simulator does a quick right roll cue for the change in angular velocity, then washes out. At this point the aircraft is at 180 degrees so there is no continuing bank angle cue, platform roll axis will be at center. Pilot resumes left roll, we give quick left roll cue, and then sim "washes out" but goes past level over to right roll angle for pull of gravity. At 90 degree right bank angle the pilot stops the roll again, so we get a quick right roll cue for change in angular velocity, then "wash out" but stays rolled to the right to simulate the earth's pull because we are at 90 degree right bank. Pilot once more resumes the left roll so we get a quick left roll cue, washing out back to the right bank angle, and the bank angle continues to decrease from there as the aircraft returns to level flight arriving at simulator zero roll position, pilot then stops the roll the fourth and final time, giving a quick right roll cue for change in angular velocity, then washing out back to center position.

    Sorry that was so long, but I wanted to be as clear as possible.

    So, how do we achieve this? Seems very complicated no? We achieve it the same way it happens in reality. So we have two different bits of telemetry driving roll angle of the simulator. Change of angular velocity and actual aircraft bank angle. Angular velocity changes will have less filter for faster cues. While bank angle will have more filter for slow changes only and will be allowed to use only a portion of simulator roll axis so there is always still some roll travel left to simulate the (more important) changes in angular velocity regardless of bank angle. This way the cue for a change in angular velocity is more pronounced, and the cue for bank angle is more subtle.

    But now for coordinated turns and barrel rolls etc. we don't want that bank angle cue. So what cancels out that force in real life? Lateral acceleration does. bank.gif

    So we also have lateral acceleration low frequency portion driving the simulator roll axis to cue for sustained lateral accelerations. Tune the balance of these so that in a coordinated turn the low frequency sustained lateral G-force cue cancels out the bank angle cue. If aircraft is not in coordinated turn they do not equal the same and you still get correct cue!

    During a barrel roll the stick is pulled back somewhat, so that will be generating some lateral acceleration counter to the bank angle cue and it should balance out so simulator stays more or less at zero roll during sustained roll. But if the stick is not pulled back (aileron roll) then there is (mostly) no lateral acceleration and the sim will be rolled to simulate pull of earth. At any point changing angular velocity will produce a "quick" roll cue in the correct direction to simulate that, but then the angular velocity cue washes out and simulator roll angle is again being driven by sum of bank angle and lateral acceleration.

    I don't know how close to this we are currently (maybe it's already 100%, I won't know until I begin testing in a few days) but I can tell you that in BFF 6DOF you can easily set up proper balance of lateral acceleration to bank angle. What you can NOT do is set up separately bank angle cue and angular velocity cue which is super important if you aren't flying like some boring airline pilot! =P @Dirty

    These videos of liquid in cockpits are extremely informative!
    • Like Like x 1
    Last edited: Jun 6, 2019
  8. hexpod

    hexpod http://heXpod.xyz

    Joined:
    Apr 18, 2016
    Messages:
    1,094
    Location:
    berlin
    Balance:
    7,098Coins
    Ratings:
    +337 / 5 / -0
    My Motion Simulator:
    DC motor, 6DOF
    In xplane alternative plugin it’s not the case.

    On ground, I keep the flight model unaltered.
    Just adding the “weight on wheels” for exaggeration.

    It can be mapped on heave axis.
  9. Trip Rodriguez

    Trip Rodriguez VR Pilot

    Joined:
    May 8, 2016
    Messages:
    675
    Location:
    Lake Ariel, Pennsylvania
    Balance:
    3,920Coins
    Ratings:
    +330 / 6 / -0
    My Motion Simulator:
    6DOF
    Next topic is vertical G-Force. If you bank and then push the stick forward, the above method should give fairly appropriate results. Bank angle cue and sustained lateral acceleration cue will both be in the same direction and should both increase the roll angle of the simulator.

    T.L.D.R; Assuming we have telemetry to drive it I'm suggesting that maybe we want negative vertical G-Force cue to tighten the harness, and positive vertical G-force cue to both loosen the harness and pitch up the platform. We would have to be able to control the positive-G to pitch cue sensitivity separately from the harness tightener cue sensitivity. Is that asking too much?

    But one of the things I most look forward to adding to my sim is a harness tightener for negative G-force.

    Negative G-force will generally only be experienced in sustained inverted flight, any time the stick is pushed forward, and in negative-G maneuvers such as an outside loop. A negative-G cue is probably also appropriate in a dive due to downward acceleration, and perhaps in a spin for the same reason. Actually I guess I could just say it will happen a lot in aerobatics!

    In an outside loop generally you will have negative G-force throughout the maneuver, and in real aircraft more or less weightless at the top. We can not simulate weightlessness, but I think that if driven properly the harness tightener would loosen somewhat as you come through zero G, but not completely so that you still feel something counter to gravity. Just less of it at the top of the outside loop, then increasing again.

    So my question is what telemetry is available to drive the harness tightener? What have people been using previously, and if it is less than ideal can we improve it? On this topic, for me at least, the sim I'd most be concerned about positive and negative vertical G-force cues is DCS World. I'm hoping you will tell me that this is already working perfectly and requires no changes. =D

    I'm mostly interested in DCS World because it is AFAIK the best for aerobatic physics. The DCS World "Christen Eagle" aerobatic biplane (very similar to Pitts Special) module has been tuned with the help of aerobatics flight instructors to behave correctly and the DCS flight model is up to the challenge, which is awesome!

    The last topic I have is (traditional) loops. From what I've been able to gather it seems like we want a sustained nose up pitch cue throughout to suggest the additional (downward relative to the pilot) G-force of this maneuver. I also think that a negative-G cue (harness tightener) might be good if possible at the top of the loop to suggest the 1-G reduction in perceived G-force as you cross the top and Earth's gravity for a few moments reduces the G-force from the loop itself. That may not be practical though, as I think the only way to get it would be to have both a "sustained negative-G" and a "change of vertical G-Force" control because the total G-Force would still be positive, a cue of the harness tightening at the top would have to be triggered by the vertical G-force being reduced but still overall being very much a positive value. I'm not at all sure how the telemetry is going to look during a loop though. I have some ideas, but it's mostly a guess. Flying straight and level the pilot pulls back the stick. This means a change in angular velocity (pitch) and gives a pitch-up movement. Now that would wash out, maybe even go negative a little as the aircraft slows down from the steep climb. We would have the Angle of Attack (absolute pitch angle) mixed in just like bank angle with rolls, but that's not going to be enough to counter the pitch-down cue from the aircraft rapidly decelerating. After coming over the top the downward part of the loop should work fine as the aircraft will now be both accelerating (pitch up cue) and for a moment the angular velocity will be increasing as the aircraft accelerates giving a positive pitch cue as well.

    The solution to that might be with the vertical-G source. If we have telemetry (I don't know) that directly gives us vertical G-force to drive the harness tightener when it goes negative, could we have the "positive" vertical G-force cue be pitch-up? That seems ideal to me but would require we have appropriate data to drive it and probably require some work to implement.
  10. Trip Rodriguez

    Trip Rodriguez VR Pilot

    Joined:
    May 8, 2016
    Messages:
    675
    Location:
    Lake Ariel, Pennsylvania
    Balance:
    3,920Coins
    Ratings:
    +330 / 6 / -0
    My Motion Simulator:
    6DOF
    @hexpod I have found that when airplane is "on ground" I want to have:

    1- Much reduced filter on heave cues (to get high frequency cues for runway bumps etc.).

    2-Increased sway cue (including roll angle for sustained sway) for turns when taxiing etc.

    3- Much increased surge cue (including pitch angle for sustained surge) for accelerating on takeoff run and for using brakes.

    I find this is very very important.
  11. SeatTime

    SeatTime Well-Known Member

    Joined:
    Dec 27, 2013
    Messages:
    2,574
    Occupation:
    Retired
    Location:
    Brisbane Australia
    Balance:
    28,370Coins
    Ratings:
    +2,844 / 38 / -0
    My Motion Simulator:
    AC motor, Motion platform
    Look forward to seeing were all this leads. Possibly not something that I need, but you never know and interesting to follow all the same.
  12. hexpod

    hexpod http://heXpod.xyz

    Joined:
    Apr 18, 2016
    Messages:
    1,094
    Location:
    berlin
    Balance:
    7,098Coins
    Ratings:
    +337 / 5 / -0
    My Motion Simulator:
    DC motor, 6DOF
    I’ll post the plugin and the idea of mapping.
    You will be able to try it by the end of the week.

    More or less the idea is this one:

    2F8F0143-A11A-4FAD-A44E-6EF365903744.png
  13. Dirty

    Dirty Well-Known Member Gold Contributor

    Joined:
    Oct 15, 2017
    Messages:
    736
    Occupation:
    All the way up front.
    Location:
    Germany
    Balance:
    7,834Coins
    Ratings:
    +864 / 2 / -0
    Hey Trip, :)

    Many good observations made! But a few wrong conclusions drawn!

    TLDR:
    1. Ignore Euler angles, because...
    2. Gravity does not exist.

    I find it totally awesome that people are interested in this. Especially because @Trip Rodriguez' problems 1 + 2 appear to be fairly frequent in plenty of discussions around the community. The "rollover-problem", as well as the "pitch 90°-problem" both most probably come from the same misconception.

    It is the misconception that we need to use Euler-angles to describe the motion of the vehicle. Euler angles describe the orientation of the vehicle, not the motion. To be more specific: They describe the orientation of the vehicle in an instance of time and they do so only in relation to the horizontal plane and north. But neither of those have anything to do with what an occupant feels inside a vehicle.

    In 6DOF motion-cueing we don't care for orientation, we care for motion! We don't do orientation-cueing we do motion-cueing:) And we normally do this for longer than an "instance" of time. If you intend to use a motion sim for anything longer than a Gazillon-th of a second, then let go of Euler angles. :) They are worthless. In fact the only thing we feel on a vehicle are vehicle specific forces (aka proper accelerations) and vehicle specific angular rates.

    The tricky part is, that for small angles the results you get from using Euler angles will initially be somewhat plausible.

    May I give a couple of challenges on Euler Angles:
    -Where do you measure those angles? I mean where are the three points (or two lines) between which you could measure any of these angles?
    -Whats your heading when pitch is 90°?
    -Whats your bank angle when pitch is 90°?
    -The moment you pull the nose through the vertical in a loop, what happens to your heading? Is this change a yaw rate? Is this change a left or right turn? And is it still the same direction when you do an outside loop and you push your nose through the vertical?


    I really don't mean to bash or mock anyone here. I am asking you to face these questions to see the limitations of Euler angles. They are great for navigation, useless for motion cueing.

    Using vehicle specific forces and vehicle specific angular rates for motion cueing doesn't have those problems. It doesn't, because they completely ignore "North" and "Gravity". Everything about those VS-forces and VS-rates is,... well,... vehicle specific.

    They tell you where "stuff would fly" while operating the vehicle. In essence they are being calculated by summing up all forces and moments on the vehicle (excluding gravity) and turning them into two vectors:
    1. Acceleration vector
    2. Rotation vector

    That's really it. Those six values describe what an occupant on the vehicle feels. Nothing more required. All sims I have looked into so far (DCS, P3D & X-plane) export those two vectors. Ask anyone who ever designed a physics engine. Any mechanical engineer should at some point have come into contact with "vehicle specific forces" or "proper accelerations".

    I can well understand that some eyebrows went up when I said "...excluding gravity". Yes, this is counter intuitive, I admit. Correct none the less.

    If you want to go to the bottom of why "...excluding gravity", then the ultimate answer would be: Gravity can be considered a force in euclidian space (your PCs 3D world), but does not exist where we live, where your sim stands and neither where the actual vehicle is being operated which is 4D spacetime. A process that takes place in 4D spacetime (Vehicle) is being replicated in 3D space (sim) only to then be displayed on a rig that stands in 4D spacetime (your basement).

    Don't get me wrong. I'm not saying that you need an Einstein-level understanding of spacetime to do motion cueing. Only if you really want to know why gravity is not used for calculating vehicle specific forces. Btw, when asked what his greatest achievement was, Einstein didn't talk about the photoelectric effect (Nobel Price) or the discovery of general relativity. Instead he mentioned the "equivalence principle" (realising that gravity does not exists)!


    You can describe any situation in a vehicle, and I will describe to you why you can ignore gravity to replicate that in a sim.
    Vehicle specific forces and rates are the way to go (if exported). They will solve many problems with 6DOF rigs.

    Cheers , Dirty :)
    • Agree Agree x 2
    Last edited: Jun 6, 2019
  14. pmvcda

    pmvcda aka FlyPT

    Joined:
    Nov 3, 2010
    Messages:
    1,868
    Location:
    Portugal
    Balance:
    14,203Coins
    Ratings:
    +2,181 / 16 / -0
    My Motion Simulator:
    6DOF
    I agree with @Dirty, but I might differ here (or I read it wrong):

    Consider a car sim.
    I have a car stopped in a 30º slope. That produces a roll of 30º.
    What do I feel?

    I think what Dirty says is correct, but not in all situations.
    In this case, and in most car games (except iRacing) gravity is not considered on the accelerations.
    So how do I simulate that slope that makes me fall through the door of the car?
    If gravity was included in the accelerations, it would be a constant value that I could convert in a motion cue. Since it's a roll, some high pass filter in sway to get the initial movement, followed by a low pass to reproduce the constant value in the roll would generate that cue (simplifying the filters).
    But has I said, it's not included in most games, so I'm thinking of adding gravity to accelerations, based on the current car angle for those games.

    I totally agree that angular rate is way more important than the angle, but we can get that with a high pass filter on the angle values.

    Or am I wrong in something?

    Note: I have to verify all the other games to be sure, but from a fast test, that's what happens in Assetto Corsa, PCARS, RFactor.....

    Edit: On my tests with DCS (very limited yet), using angles is completely frustrating and useless.
  15. BlazinH

    BlazinH Well-Known Member

    Joined:
    Oct 19, 2013
    Messages:
    2,145
    Location:
    Oklahoma City, USA
    Balance:
    16,574Coins
    Ratings:
    +1,831 / 32 / -1
    Gravity does not exist. What we think of as gravity is acceleration due to space time being warped by a large body or mass. Earth warps spacetime causing the natural path of things like our body to be accelerated towards the center. Since this acceleration pushes us against the crust of the earth it causes us to feel the same force as being in outer space (zero gravity) in an elevator that is accelerating upwards relative to our feet. Thats really all the understanding needed.
    • Agree Agree x 2
    Last edited: Jun 6, 2019
  16. Dirty

    Dirty Well-Known Member Gold Contributor

    Joined:
    Oct 15, 2017
    Messages:
    736
    Occupation:
    All the way up front.
    Location:
    Germany
    Balance:
    7,834Coins
    Ratings:
    +864 / 2 / -0
    Thank you for challenging this! Seriously :) The more situations you think through with a critical mind, the more intuitive this understanding will become.

    Here's the line of arguments of why it still applies in the situation where you are parked on a 30° incline:
    Your wheels on the ground transmit two forces: Normal forces (perpendicular to surface) and traction (parallel to surface)
    --> the normal component lets you feel vertical acceleration,
    --> the traction lets you feel longitudinal (or lateral) acceleration.

    No gravity anywhere in the calculation.

    You can play with this scenario anyway you want: Imagine I could change the friction coefficient of the surface to zero. You would slide down the incline, feeling no more longitudinal (nor lateral) forces. But the vertical would still be there, because the forces would still be there.

    That's strange... Does that mean, that they give you a vertical acceleration of zero when parked? That would mean, that all accelerations are zero in a static situation!?! And yes, it would indeed mean that you get no motion cues when parked on an incline! :confused:

    ...well, in this case, you can create the vehicle specific forces by adding the following corrections to the exported values. At least THERE the Euler angles are useful, because they give us the information about gravity:

    CorrLon = sin(pitch)
    CorrLat = sin(roll) * cos (pitch)
    (I assume that accelerations are given in "G")

    ...the second is only a somewhat educated guess, but try it out. It should work with some combination of a sin and/or a cos.

    If by "angle values" you mean the Euler angles: Yes, but only for a very limited portion of the possible "orientation space". As long as pitch and/or roll is small there are only minor problems (like going from heading 359° to 001°). Those can be dealt with. Thats why I say: Car sims can get away with a lot. They will simply not have any noteworthy pitch or roll angles.

    ...unless you are driving here:
    iu.jpeg
    In this turn your heading will change very quickly, but you will nonetheless have only minimal side loads and very small angular rates around the vertical axis. A special case, I admit :)

    But the problems increase with tan(pitch) or tan(roll). Up to a point where at ~90° roll (steep turn) your veh.spec. pitch rate is quasi your world-yaw-rate and vice versa. For 90° pitch neither heading nor bank angle is even defined. It does simply not exist.

    Using angular rates (if available) makes the cueing totally vehicle referenced and Earth-independent. Which is OK, because we only need the vehicle specific forces. No forces --> No feelings.

    Dirty :)
    Last edited: Jun 6, 2019
  17. Dirty

    Dirty Well-Known Member Gold Contributor

    Joined:
    Oct 15, 2017
    Messages:
    736
    Occupation:
    All the way up front.
    Location:
    Germany
    Balance:
    7,834Coins
    Ratings:
    +864 / 2 / -0
    If you can read the lateral forces of the tire contact points out of the sim, then those should give you a pretty good approximation of the lateral vehicle specific forces. After all there aren't all that many other forces at play in the lateral axis.

    Longitudinally you could simply use the first derivative of speed, then correct for pitch and roll like in the previous post. Should give a usable approximation.
  18. pmvcda

    pmvcda aka FlyPT

    Joined:
    Nov 3, 2010
    Messages:
    1,868
    Location:
    Portugal
    Balance:
    14,203Coins
    Ratings:
    +2,181 / 16 / -0
    My Motion Simulator:
    6DOF
    When I said not in all situations, was relative to the games that don't output values with "gravity". Not the gravity exists or not...
    An yes, they don't, at least in the output, it doesn't show the acceleration due to the so called gravity:
    Sem nome.jpg
  19. Dirty

    Dirty Well-Known Member Gold Contributor

    Joined:
    Oct 15, 2017
    Messages:
    736
    Occupation:
    All the way up front.
    Location:
    Germany
    Balance:
    7,834Coins
    Ratings:
    +864 / 2 / -0
    That's a bummer indeed! :confused: That means you could slowly drive up the Eau Rouge in Spa Francorchamps and feel nothing...!

    Try the corrections, or the traction forces if available.

    Dirty :)
  20. pmvcda

    pmvcda aka FlyPT

    Joined:
    Nov 3, 2010
    Messages:
    1,868
    Location:
    Portugal
    Balance:
    14,203Coins
    Ratings:
    +2,181 / 16 / -0
    My Motion Simulator:
    6DOF
    Yes, amazing how they call this sims, when they don't even output accelerations as it should be...
    Well, they might have it inside on calculations, but output completely removes that data.
    Until now, and on what I tested, I think, that only NoLimits2, DCS and iRacing have it included...
    Funny is that I'm not a fan of iRacing :eek:

    I was removing it, but now I'm inverting everything. I have to add gravity acceleration to those who don't have it.
    • Agree Agree x 2