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 6DOF/Stewart/Hexapod Interface for linear and rotating actuators

Discussion in 'FlyPt Mover' started by pmvcda, Jan 2, 2019.

  1. SilentChill

    SilentChill Problem Maker

    Joined:
    Jul 19, 2014
    Messages:
    2,619
    Occupation:
    Railway Maintenance
    Location:
    Morecambe, Lancashire, England
    Balance:
    20,399Coins
    Ratings:
    +3,480 / 34 / -0
    My Motion Simulator:
    DC motor, Arduino, Motion platform, 6DOF
    Ok everything seems to be working exactly as it should be here :)
    • Like Like x 2
  2. 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 will be with you, I wanted to make some tests on the rig also, but I will be out all weekend :mad:

    I have to say that the roll over and washout is just a first iteration.
    Roll over we can't do much more, but washout can be made better.

    Read some papers (here we say in the diagonal for fast reading) on hexapods washout...
    But I think I will stay with more simple solutions for individual DOF.

    My current washout is just:
    filteredValue = LowPass(previousFilteredValue / 2) + HighPass(newValue)

    So tuning is complicated, using just the number of samples used for each filter.
    • Like Like x 1
    • Informative Informative x 1
  3. SilentChill

    SilentChill Problem Maker

    Joined:
    Jul 19, 2014
    Messages:
    2,619
    Occupation:
    Railway Maintenance
    Location:
    Morecambe, Lancashire, England
    Balance:
    20,399Coins
    Ratings:
    +3,480 / 34 / -0
    My Motion Simulator:
    DC motor, Arduino, Motion platform, 6DOF
    I am not using washout or roll over as I do not see the need at the moment , I just need to tweak the band stops but its feeling great
    • Like Like x 1
  4. wannabeaflyer2

    wannabeaflyer2 Well-Known Member

    Joined:
    Jun 12, 2015
    Messages:
    724
    Location:
    london uk
    Balance:
    8,287Coins
    Ratings:
    +950 / 7 / -0
    My Motion Simulator:
    2DOF, Arduino, Motion platform, 6DOF
    Have to say @pmvcda big thanks for the explanations of filters and Other elements of this program , You make a great teacher , Not an easy thing to develop something like this and so I for one say Don't Stop :) its just growing pains .

    Your Development rate and Updates are something we members really appreciate .. from my perspective I can only see progress with minor tweaks :) ( Not so Minor Really , it's just great response from you, to testers feedback ..

    The goal post shift as members push the boundries of the Program but your moving with them :) so im loving the way each update brings something new. and the beauty is if any user have a version that works for them , then they are able run it and still have an operational 6DOF simulator ...

    Great stuff and Thanks for the effort and work you put into this program .. " Mr Ya Got Skills" as they say ..
    • Agree Agree x 3
    • Friendly Friendly x 1
  5. Pierre Lalancette

    Pierre Lalancette Sir Lalancelot Gold Contributor

    Joined:
    Dec 11, 2016
    Messages:
    943
    Occupation:
    3D teacher
    Location:
    Quebec, Canada
    Balance:
    7,683Coins
    Ratings:
    +884 / 6 / -0
    My Motion Simulator:
    3DOF, DC motor, Arduino, 6DOF
    How does roll works? Let's take yaw for simplicity. 0 degree: look straight ahead. 90 degrees: far right. 180: back to look ahead. 270 degrees: far left. 360 degrees: washout to 0 degree.
    Is that it?
  6. 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
    Works like this (but there's something I will change in next build, see last paragraph):

    Angle is increasing
    If angle bigger than range/2, angle starts decreasing
    When we reach range, we are again at zero

    Angle decreasing
    If angle less than -range/2, angle starts increasing
    When we reach -range, we are again at zero

    So there's a problem here.
    The rig doesn't jump from one side to the other, but while you are expecting to rotate right, she might be rotating left if the angle is to big (more than half the range)

    So if you use the roll over, you should avoid reaching the limits of the range. If you reach, the rig doesn't jump to the other side, but starts moving in the opposite way.
    That's what happens with Yaw on a car sim or any rotating DOF for airplanes.

    So, what the hell is that for?
    Well, you should use it with the washout.
    With the washout, you don't reach the limit easily, because the rig is constantly returning to zero.
    Try the values I have in the image for washout, it was working for me in LFS.
    If you find it to soft, change values or just apply gain.

    There's something wrong here. I noticed after uploading the build.
    I should let go to the maximum range, not just half range and then reverse.
    So for this build use the double of your range value.
    Last edited: Feb 22, 2019
  7. Pierre Lalancette

    Pierre Lalancette Sir Lalancelot Gold Contributor

    Joined:
    Dec 11, 2016
    Messages:
    943
    Occupation:
    3D teacher
    Location:
    Quebec, Canada
    Balance:
    7,683Coins
    Ratings:
    +884 / 6 / -0
    My Motion Simulator:
    3DOF, DC motor, Arduino, 6DOF
    I have done a bit of testing, and I still get the severe correction as soon as I put a bit of yaw (20%). I have used washout everywhere (simtools and hexapod), did not really help, but it worked at centering the rig . Smoothing at 100% did help.

    But I have found something. When passing from f-180 to 180, the rig goes from max side to opposite max side. It should not. It should do nothing or go back to center position. The jump from side to side is so useless. Maybe I don't know what I'm saying. It's late, I can't see straight. I can't seem to be able to calibrate that thing right.
  8. SilentChill

    SilentChill Problem Maker

    Joined:
    Jul 19, 2014
    Messages:
    2,619
    Occupation:
    Railway Maintenance
    Location:
    Morecambe, Lancashire, England
    Balance:
    20,399Coins
    Ratings:
    +3,480 / 34 / -0
    My Motion Simulator:
    DC motor, Arduino, Motion platform, 6DOF
    Just a quick note, it doesn't work in minimized mode
    • Like Like x 1
  9. 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
    In reality, the function of washout is to remove the need for roll over.
    Roll over is there to use if you are not 100% sure you might not go over the limit.
    That's the reason I say to use both at the same time.
    Next evolution of washout, should take into acount the limits, and calculate washout so everything works in the limits without need for roll over.

    To test this, please make a simple axis assignement with 100% for each axis and DOF
    Axis1a - 100% sway
    Axis2a - 100% surge
    Axis3a - 100% heave
    Axis4a - 100% yaw
    Axis5a - 100% roll
    Axis6a - 100% pitch

    No filters in simtoolos
    washout and roll over in the interface for yaw
    Try making a lap on a track to see waswhout working.
    Try with roll over and with and without washout.

    In the end, it's more important to use extra1 for Axis4a.

    Also, don't forget to change those settings for the profile of the game you are using!

    You might be changing the default instead of the Assetto Corsa profile.
  10. Pierre Lalancette

    Pierre Lalancette Sir Lalancelot Gold Contributor

    Joined:
    Dec 11, 2016
    Messages:
    943
    Occupation:
    3D teacher
    Location:
    Quebec, Canada
    Balance:
    7,683Coins
    Ratings:
    +884 / 6 / -0
    My Motion Simulator:
    3DOF, DC motor, Arduino, 6DOF
    I did the test last night. Due to loading video and sleep deprivation, I could only post it now.

    We don't see much the values in the videos, so here they are. I set all the value in simtools like you said. I set it in Aserto Corsa and the Default as I always did, because I was never sure which one it was using. I did a test with roll and washout, and another one with roll only. I removed all flip to start fresh and I used the same valud then you did. I was clever enough to reduce the main level at 50%, because I would have destroy something.

    wash_out_roll.jpg

    This is Roll and Washout. (WARNING, LOUD NOISE VIDEO)



    This is Roll only:



    Washout works. Roll, I'm not so sure. This tells me that I cannot use yaw in Asseto Corsa. Remember that the main is only at 50%. So it will be only Extra1 from now one in Asseto. Everything seems to work properly. I even had have Lock At Lowest Position working for a while (until I change value, made test and screw up all setting). I tried Lock at lowest position in the game, 3 actuators hits the limit switch. I don't think it should be used in game.

    So, it's back to calibration start. I will use Extra1 instead of Yaw andput everything to the max in Simtools (unless I add some forces) and control the final results with Hexapod. That should work.

    By the way, thanks for all the help.
    Last edited: Feb 24, 2019
  11. Thanos

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

    Joined:
    Jul 6, 2017
    Messages:
    1,347
    Occupation:
    Electronics Engineer
    Location:
    United States
    Balance:
    2,699Coins
    Ratings:
    +1,043 / 9 / -0
    My Motion Simulator:
    AC motor, Motion platform, 4DOF, 6DOF
    Place a warning for users with headphones please! LOL
  12. Pierre Lalancette

    Pierre Lalancette Sir Lalancelot Gold Contributor

    Joined:
    Dec 11, 2016
    Messages:
    943
    Occupation:
    3D teacher
    Location:
    Quebec, Canada
    Balance:
    7,683Coins
    Ratings:
    +884 / 6 / -0
    My Motion Simulator:
    3DOF, DC motor, Arduino, 6DOF
    Sorry, I never listen to the sound of the videos. Warning placed.
  13. hannibal

    hannibal Active Member

    Joined:
    Sep 29, 2018
    Messages:
    677
    Balance:
    4,489Coins
    Ratings:
    +297 / 4 / -0
    My Motion Simulator:
    6DOF
    i just started to follow this thread..
    so the hexapod interface runs on top of simtools?
    i looking into making a 6 Dof steward platform... will this work with arduino & sabertooth?

    i was reading the first post, may i ask what does getting the pose of the hexapod do? what benefit does this utility have over just using simtools?

    sorry for my noobness.. im new, trying to understand all about motion..
    • Like Like x 1
  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
    Pose of the rig/hexapod is the translation and attitude of the rig/hexapod.
    Translation is the dislocation on each of the 3 axis (X,Y,Z)
    Rotation is the rotation around each of the 3 axis.

    I'm using the values we get from the game and remap them to the possible range of the rig.
    So if the rig allows 30º rotation of yaw to each side, yaw range is 30º.
    From game we get a value between -1 and +1, that value is remapped to the range.
    We do this to all 6DOF we receive from the game (notice that acceleration is treated as a range right now).

    When we have the final pose we want, we can calculate the length of the actuators to have that pose on the rig.

    So, basically, what the interface makes is calculate the length of the actuators to have the pose we want.
    But that is simple, the final objective and that will come in the next version, is implement a motion cueing system on the rig.
    Basically, we want to produce a movement inside the possible envelope of the rig that can cheat in the best way possible the brain of the user.
    For that we need to implement washout algorithms. More on that soon...

    So why the need for that application?
    There's no plugin in simtools to calculate the length of the actuators to reproduce a specific pose.
    We can guess the amount (% of each DOF) of movement we want for each actuator, but without calculations, it will never be real or exact.
    Much less, implement a washout algorithm for motion cueing .

    We have no plugin, but this might change in near the future ;)

    For more info on what I pretend, take a look here:
    https://en.wikipedia.org/wiki/Motion_simulator
    • Informative Informative x 2
    • Like Like x 1
    • Friendly Friendly x 1
  15. 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'm sorry, it's not working as intended.
    Last update was kind of a first step into washout.
    In my mind, I wanted to have a basic and simple way of adding washout for each DOF on the filters. But in reality, it should not be this way (might keep it there, let's see).
    Even roll over in translation axis is not really needed (also might keep it there...).

    As I said in previous post, next step is to implement a complete washout filter (it's already working) and that will turn all current filtering obsolete in my opinion.
    But I will keep it, because for now, I think it's the simplest and more visual way to use it.

    More news soon.
    • Like Like x 3
  16. hannibal

    hannibal Active Member

    Joined:
    Sep 29, 2018
    Messages:
    677
    Balance:
    4,489Coins
    Ratings:
    +297 / 4 / -0
    My Motion Simulator:
    6DOF
    Ok cool. A program utility sim data and then optimize.. nice! I hope i can build something soon to join in the fun!
  17. Pierre Lalancette

    Pierre Lalancette Sir Lalancelot Gold Contributor

    Joined:
    Dec 11, 2016
    Messages:
    943
    Occupation:
    3D teacher
    Location:
    Quebec, Canada
    Balance:
    7,683Coins
    Ratings:
    +884 / 6 / -0
    My Motion Simulator:
    3DOF, DC motor, Arduino, 6DOF
    I hope my videos helped you out.

    Man, callibration of that thing is such a b... witch. Just when I was starting to test again, one of my actuator's strap started skipping steps. So, everything moved from callibration to repare. Printing new parts and replacing faulty pieces.
  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
    :eek:

    The idea is to make it more simple. But that's not an easy task.
    I don't know if my next update is going to help anything.
    I'm implementing a classical washout algorithm.
    For that we are going to have a new window:

    Sem nome.jpg

    We can choose between this or the previous model.
    Range, gain and flip are still used in the main window, while filtering will be used in the new window.
    Still needs some work because of the roll over.
    Before next weekend it might be ready for testing.
  19. greatg67

    greatg67 Member Gold Contributor

    Joined:
    Aug 14, 2018
    Messages:
    71
    Balance:
    509Coins
    Ratings:
    +8 / 1 / -0
    My Motion Simulator:
    6DOF
    I also just discovered this thread. I have a P6 from DOF Reality. Do you think this could be used?
  20. Youngsoo Cho

    Youngsoo Cho VR Sim Racing Gamer

    Joined:
    May 25, 2017
    Messages:
    154
    Occupation:
    Business Man
    Location:
    Korea
    Balance:
    467Coins
    Ratings:
    +32 / 1 / -0
    My Motion Simulator:
    3DOF
    Hello how is the P6 Dof Reality? is it good enough?