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. noorbeast

    noorbeast VR Tassie Devil Staff Member Moderator Race Director

    Joined:
    Jul 13, 2014
    Messages:
    20,535
    Occupation:
    Innovative tech specialist for NGOs
    Location:
    St Helens, Tasmania, Australia
    Balance:
    145,034Coins
    Ratings:
    +10,776 / 52 / -2
    My Motion Simulator:
    3DOF, DC motor, JRK
    Please ask on the DOFreality thread instead: https://www.xsimulator.net/community/threads/low-cost-2dof-3dof-motion-simulator-dof-reality.8570/
  2. 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
  3. C1500

    C1500 Active Member

    Joined:
    Nov 19, 2018
    Messages:
    165
    Location:
    Germany
    Balance:
    1,118Coins
    Ratings:
    +86 / 1 / -0
    My Motion Simulator:
    AC motor, 6DOF
    Hi FlyPT
    today i tried yout wonderfull software
    But i guess I made more then one mistake

    Can you please explain me witch motor should be No. 1?
    I wrote my axis into this screenshot:
    Settings.png
    How would be then the port settings?

    The other problem is al lot more confusing
    The movement of the grafic is correct, but my rig rides completely different
    I tried to control heave but the rig maks a yaw move
    Aktually I can say:
    Sway moves like pitch
    Surge moves like Roll
    Heave moves like Yaw
    Yaw moves like Heave
    Roll moves like Surge
    Pitch moves like Sway

    My Axis Settings in SimTool are the same as you made in the first post in this threat
    Axis.png

    Hopfully you can help me

    Kind regards
    Peer
  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,

    Sorry for the late reply.
    The green bar you see in the 3D representation, is the front of the rig, where you are looking at when seated in the rig.
    First actuator at your front right is #1 and they increase in the clock direction until #6, the first one on your front left.
    This is the numbering for the interface.
    If you put "<Axis1a>" in the serial string, this represents the actuator #1 in the interface, with the above logic.

    If what you have in your picture is your numbering, then:

    #1 in interface is <Axis1a> in serial and it's your actuator #4
    #2 in interface is <Axis2a> in serial and it's your actuator #5
    #3 in interface is <Axis3a> in serial and it's your actuator #6
    #4 in interface is <Axis4a> in serial and it's your actuator #1
    #5 in interface is <Axis5a> in serial and it's your actuator #2
    #6 in interface is <Axis6a> in serial and it's your actuator #3

    So to send data to your actuator #1, you use <Axis4a>
    So to send data to your actuator #2, you use <Axis5a>
    So to send data to your actuator #3, you use <Axis6a>
    So to send data to your actuator #4, you use <Axis1a>
    So to send data to your actuator #5, you use <Axis2a>
    So to send data to your actuator #6, you use <Axis3a>

    From your settings, you are using 3 Arduinos with SMC right (from your thread)?
    If so, that's two actuators in each board.
    Then your connection string should be:

    [A<Axis5a>][B<Axis5a>][C<Axis6a>] on the board that controls the actuators #1 #2 and #3 of your rig
    [A<Axis1a>][B<Axis2a>][C<Axis1a>] on the board that controls the actuators #4 #5 and #6 of your rig

    You have <Axis6b>, that might be a copy paste error by youbuddy on your thread

    Also, for testing, configure simtools, with just:
    Sem nome.jpg

    And use the interface sliders to verify if everything is correct.
    When everything looks correct, you can test some mixing on simtools
    • Like Like x 1
    • Informative Informative x 1
  5. C1500

    C1500 Active Member

    Joined:
    Nov 19, 2018
    Messages:
    165
    Location:
    Germany
    Balance:
    1,118Coins
    Ratings:
    +86 / 1 / -0
    My Motion Simulator:
    AC motor, 6DOF
    Thank you very much for your help.
    But it doesn´t help.
    I´ve used now these settings:
    Settings2.png
    But there is still the wrong action when i use the blue fader:
    Sway moves like pitch
    Surge moves like Roll
    Heave moves like Yaw
    Yaw moves like Heave
    Roll moves like Surge
    Pitch moves like Sway

    And i got another probem
    I don´t know why, but however the maximum angle was ignored while i tried to use heave and surge was not back on "0"
    So the arm goes over an brokes the connection to the poti.
    I think there is a failure in my seetings so the max circle is to big.

    Now i first have to fix this hardware problem.
    After that i will test again

    have i nice weekend
    Peer
  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
    Are you sure that COM5 is for actuators 4 and 5
    COM6 for 6 and 1
    and COM7 for 2 and 3?

    Because they seem swapped.

    EDIT: Wait, let me take a look at SMC software...

    EDIT #2:
    Ok, SMC3 accepts 3 motors in each board.
    You are using two in each board.
    So maybe you should send the 3rd axis with zero:

    [A<Axis1a>][B<Axis2a>][C<0>]

    You have to be sure, that for each board, you have the actuators connected correctly.
    First what I said above and next if you have physically connected actuator 4 on your rig to arduino in the Axis1a pins and actuator 5 on arduino Axis2a pins.
    Same for the other boards.
    Hope I explained what I mean.
    • Like Like x 1
    Last edited: Mar 3, 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
    @C1500 Yes, don't be scared to switch your com port around. The computer is mostly the one who decide the order. You just have to find it. Mine has to be like this.

    com.jpg
    • Agree Agree x 1
    • Informative Informative x 1
  8. C1500

    C1500 Active Member

    Joined:
    Nov 19, 2018
    Messages:
    165
    Location:
    Germany
    Balance:
    1,118Coins
    Ratings:
    +86 / 1 / -0
    My Motion Simulator:
    AC motor, 6DOF
    Hi
    my setup is like this:
    Settings3.png

    So it should be OK
    I found 1 mistake in the middle angle
    It was 0°, but this means the crank is on the outside.
    When i change the value to -170° the grafik semas to be right.

    *short test break*

    OK, it works
    The biggest problem was in front of the monitor ;)
    The angles of the Cranks where completely wrong.
    Also the revers settings was wrong

    With this settings, it looking very good (still have to repair one motor)
    Settings4.png

    Now the movement looks realy good with this interface.

    The 3D grafic looks like this:
    Settings5.png

    Thanks so much for your support.

    Kind regards
    Peer
    • Like Like x 1
  9. C1500

    C1500 Active Member

    Joined:
    Nov 19, 2018
    Messages:
    165
    Location:
    Germany
    Balance:
    1,118Coins
    Ratings:
    +86 / 1 / -0
    My Motion Simulator:
    AC motor, 6DOF
    That´s why I inserted the [C<Axis6b>] as yobuddy explaind me.
    But i will try also your [C<0>]
    • Like Like x 1
  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
    By the way @pmvcda , the lock at lowest position now is working fine. I don't know if it's because of the new version or because I did some change in smc3.
  11. 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
    Version 1.6.9

    Download on the first post of this topic

    Been working on something new... That made me change many internals of the interface.
    So here's the new version, with more filters:

    Sem nome.jpg

    -New washout filter calculation.

    -Using the filters, it's possible to reproduce a simple motion cuing algorithm.

    -Faster pose calculation with changes to add more DOF in the future

    -Small optimisations in drawing

    -Solved spikes in filters when we changed types

    -Corrected problem when going to lowest position

    -Now works when minimised

    -Roll over changed.
    If filtered value reaches limit, it's cropped and stays there, although internally it's still calculated, so it might take some time to see the value moving again.
    You should apply filters like washout or high pass to avoid reaching limits.

    -Optimised interface visualisation code, way less if's and loops.

    -Graphics records data only when visible, so everything is reset if you hide it.

    -Changed scale. Now scale is applied only to the final output. It was causing problems on the actuators (and lowest position).
    • Like Like x 4
  12. 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
    Awesome will try without tomorrow
  13. 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
    New version always at the beginning of the week... Tease.
  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
    It's the result of more free time at weekends.
    • Agree Agree 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
    An example of settings for LFS:

    Sem nome.jpg

    This is working for me, with my current setup in Simtools.
    It's just to give an idea of proportions and filters I'm using, specially in mixing yaw with roll and pitch with surge.

    (Note: We can see the yaw roll over in action on the graphic)
    Last edited: Mar 6, 2019
  16. 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
    Hi FlyPT
    For rotary actuators, would it be possible to output in the GUI additional boxes with:

    - Angular position of each crank lever after the math (0.00 deg. as horizontal pos. )

    - Output position of each actuator scaled to 100 percent (50.00 percent being the middle position)

    Thanks
  17. 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, the % was already on my mind, because of scale.
    What I mean is, everything is calculated in degrees and mm and has no relation to the output range, so there's a scale to make values match the rig dislocations.
    If we change scale, there's no way to visualize it without rig, only with a % value or the output value in bit range.

    The angle is just subtracting the middle value specified on the rig dimensions to the value shown on the interface.
    The angle shown is the angle relative to the angle you specified as middle.

    Is there a special reason to show it relative to the horizontal instead of middle of the range?
    (my rig is linear, so not much experience with rotating problems)
    • Like Like x 1
  18. 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
    “there's no way to visualize it without rig, only with a % value or the output value in bit range.”

    yes precisely

    "Is there a special reason to show it relative to the horizontal instead of middle of the range?"

    keeping the 0 as horizontal while displaying crank angles could be more consistent for the user as your "heave offset" for middle position takes already the 0 horizontal as reference.

    Not really sure if it's answering your question :)

    Once we have those two variables (bit output% and crank angles) we can cross reference if the kinematic operates properly.

    Thanks
    Last edited: Mar 7, 2019
  19. 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 mean, I guess the 50 percent output has to be in the “middle” (platform operational starting point) regardless how big is is the heave offset.

    I don’t know how you deal with that regarding the scaling factor.

    With displayed variables I am asking for it will be transparent
    Last edited: Mar 7, 2019
  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
    The rotating scale is not working. Made some changes and messed it (both for rotation and linear, although on linear the result should be OK).
    I have a new version to upload today. I'm just adding the % you asked on the output.