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

Showroom Compact AC Servo 6DOF Rotary Stewart platform

Discussion in 'DIY Motion Simulator Projects' started by knaufinator, May 26, 2020.

  1. knaufinator

    knaufinator Active Member

    Joined:
    Nov 16, 2017
    Messages:
    198
    Occupation:
    Simulation Engineer
    Location:
    akron,ohio
    Balance:
    1,737Coins
    Ratings:
    +226 / 1 / -0
    My Motion Simulator:
    AC motor, 6DOF
    I may have it wrong then,.. i did not calculate it,.. I just held my compass up and got a ballpark.
    I will mess around with this sometime in the winter, when the weather gets bad...

    height of the chassis plane, from the motor/swing arm plane

    Yes, .. I remember this one being difficult to understand,.. I figured it out by trial and error in the excel sheet. this describes the angle the motor is relative to something,.... I dont recall what, ... I would have to study the excel file again, but if you update the theta s values,... the visual representation also changes.. the flat diagram in the excel file is the one to look at to see the changes... not the 3d one,.. at least for these changes.
  2. FeidhlimLee

    FeidhlimLee Member

    Joined:
    Oct 31, 2021
    Messages:
    61
    Balance:
    422Coins
    Ratings:
    +13 / 0 / -0
    Sir, one quick question, in this picture, the gear adaptors have different angles to the swing arm, will it be adjust by hall sensors.[​IMG]
  3. knaufinator

    knaufinator Active Member

    Joined:
    Nov 16, 2017
    Messages:
    198
    Occupation:
    Simulation Engineer
    Location:
    akron,ohio
    Balance:
    1,737Coins
    Ratings:
    +226 / 1 / -0
    My Motion Simulator:
    AC motor, 6DOF
    Thats right, it does not matter where the key is, the motor is homed into position by using the hall sensor + offsets programed into the each AC servo driver.

    Also, FYI, I ended up welding the coupler to the gear shaft as well, as there was still slight backlash caused by these keyed couplers,... welding it solved that.

    • Like Like x 1
    • Informative Informative x 1
  4. tu xiao mi

    tu xiao mi Member Gold Contributor

    Joined:
    Aug 10, 2021
    Messages:
    71
    Balance:
    486Coins
    Ratings:
    +5 / 0 / -0
    My Motion Simulator:
    Arduino, 6DOF
    Sir, if according to your design, should theta_r be 10 or 15?
  5. knaufinator

    knaufinator Active Member

    Joined:
    Nov 16, 2017
    Messages:
    198
    Occupation:
    Simulation Engineer
    Location:
    akron,ohio
    Balance:
    1,737Coins
    Ratings:
    +226 / 1 / -0
    My Motion Simulator:
    AC motor, 6DOF
    theta r should most likely be 20 if your diagram was accurate. It has been along time since I looked at this level, and I know that particular value was ballparked,... I did not even think about making a diagram and mathing it out.
  6. tu xiao mi

    tu xiao mi Member Gold Contributor

    Joined:
    Aug 10, 2021
    Messages:
    71
    Balance:
    486Coins
    Ratings:
    +5 / 0 / -0
    My Motion Simulator:
    Arduino, 6DOF
    Sir, these algorithms are completely written by you, right?
  7. knaufinator

    knaufinator Active Member

    Joined:
    Nov 16, 2017
    Messages:
    198
    Occupation:
    Simulation Engineer
    Location:
    akron,ohio
    Balance:
    1,737Coins
    Ratings:
    +226 / 1 / -0
    My Motion Simulator:
    AC motor, 6DOF
    I wrote the c++ algorithm, based on the algorithm in the provided excel file for inverse kinematics. I found the excel file on the internet, and has the author's name embedded in it.
  8. FeidhlimLee

    FeidhlimLee Member

    Joined:
    Oct 31, 2021
    Messages:
    61
    Balance:
    422Coins
    Ratings:
    +13 / 0 / -0
    Sir, I'm building one following your instruction now, and I got the idea of making the base triangle shape to get more stability, but I'm not sure will it have any structural disadvantage, since I didn't find any finished work with triangle base. I assume it works as long as it's being steward platform, but I'm not quite sure.
    here is my design. Would you enlighten me.
    I tried to post my design picture but I didn't find the botton.
  9. knaufinator

    knaufinator Active Member

    Joined:
    Nov 16, 2017
    Messages:
    198
    Occupation:
    Simulation Engineer
    Location:
    akron,ohio
    Balance:
    1,737Coins
    Ratings:
    +226 / 1 / -0
    My Motion Simulator:
    AC motor, 6DOF
    If its a standard steward layout, it should work.
    You will need to modify the excel file to test and make sure your values will work, as it will show you visually the layout, as you change the parameters.
  10. FeidhlimLee

    FeidhlimLee Member

    Joined:
    Oct 31, 2021
    Messages:
    61
    Balance:
    422Coins
    Ratings:
    +13 / 0 / -0
    Hello sir, I've spent sometime to investigate the excel to learn about the structure, I think I just found a good combination, but something confuses me. In the graph with you value, it seems your structure causes axis error easily when I tried to pull down the Z axis values, I asume it indicates the structure can't make full use of the sevro arm length to get to the lowest point. But that's not true in your video. So I'm really confused what does the error mean.
  11. knaufinator

    knaufinator Active Member

    Joined:
    Nov 16, 2017
    Messages:
    198
    Occupation:
    Simulation Engineer
    Location:
    akron,ohio
    Balance:
    1,737Coins
    Ratings:
    +226 / 1 / -0
    My Motion Simulator:
    AC motor, 6DOF
    Good question, this really takes me back,... at this point is been 3-4 years since I wrote this code. this stuff is getting harder to remember, so its good you guys keeps asking stuff,,,

    I recall the max limits in the excel file being impossible to hit due to issues such as you mention, as well some values also would cause structural impacts... like arm striking against the chassis, so I scale what it can accept from the pc., and then pass this scaled value to the inverse kinamatic algorithm.

    if you look at the controller.ino code , more specifically this scaling portion of the controller code below, i scale the heave value to a limit of +/- 7,.. then if you look at the excel I bet 7 is an ok value to use, and it still uses a good portion of heave.
    this code is directly after consuming it from the pc.

    You should modify these to you own platform, be aware of combined loads though, you just dont want to smash into things.

    for reference I have almost 12" of heave with these limits in place.

    ----------------------------------------------
    //these are tuned to my specific platform,.. to ensure a value does not get to high and break something
    //todo, make this dynamic and locked in from the android app
    if(i == 2)
    temp =mapfloat(value, 0, 4094, -7, 7);//hieve
    else if(i > 2)//rotations, pitch,roll,yaw
    temp = mapfloat(value, 0, 4094, -30, 30) *(pi/180.0);
    else//sway,surge
    temp = mapfloat(value, 0, 4094, -8, 8);

    ---------------------------------------------------
  12. FeidhlimLee

    FeidhlimLee Member

    Joined:
    Oct 31, 2021
    Messages:
    61
    Balance:
    422Coins
    Ratings:
    +13 / 0 / -0
    Thank you Sir, this illustrates so much. I sincerely appreciate you being so patient to explain it to me.
    • Like Like x 1
  13. zhai1987

    zhai1987 Member

    Joined:
    Sep 7, 2021
    Messages:
    96
    Balance:
    320Coins
    Ratings:
    +11 / 0 / -0
    My Motion Simulator:
    2DOF, 3DOF, AC motor
    You can try 3DOF and 4 actuators. thank you
  14. FeidhlimLee

    FeidhlimLee Member

    Joined:
    Oct 31, 2021
    Messages:
    61
    Balance:
    422Coins
    Ratings:
    +13 / 0 / -0
    Hello sir, it's been a while, my design is during construction following your advice, and I encountered two issues.
    1:Is the emergency button just a overall system power disconnection, or it's a set-still signal from the controller, if it's just a power kill, I'm concerned whether this may cause some damage to the motor.

    2: What kind of tool you use to cope with the tube ends.
    [​IMG]

    Thank you for spending time for my question, my deeply appreciation。
  15. knaufinator

    knaufinator Active Member

    Joined:
    Nov 16, 2017
    Messages:
    198
    Occupation:
    Simulation Engineer
    Location:
    akron,ohio
    Balance:
    1,737Coins
    Ratings:
    +226 / 1 / -0
    My Motion Simulator:
    AC motor, 6DOF
    The PCB estop, is used to Pause the motors, not power kill. I did not want to default to dropping the rider,... a pause is normally good, and I use this often ... like.... before I hit walls ... then reset the button, and you are back in the game in just a few seconds,,there is a ramp up algorithm in place so it eases back into where it should be.

    I also have a POWER KILL button on the sim, that I can use if a pause is not enough.... if something bad happened... This is wired in series with the main power switch that holds open the relay, to power the drivers. This WILL drop the chasis,..

    there is no damage to the motor, when you power kill,.. they just gracefully fall to the lowest point..i.e.... i hit the switch when I am done, and it falls.

    To Cope the tube, I used a 1" hole saw in my drill press,.. then pressed it to the 1"OD tube, while the tube was sitting in that angle iron that you see, the angle iron has a flat bottom welded to it, so it will stay flat under the drill press.


    • Informative Informative x 1
    Last edited: Dec 1, 2021
  16. FeidhlimLee

    FeidhlimLee Member

    Joined:
    Oct 31, 2021
    Messages:
    61
    Balance:
    422Coins
    Ratings:
    +13 / 0 / -0

    Is the pcb estop related code already in the controller? how does it get physical? Thank you, sir.
  17. knaufinator

    knaufinator Active Member

    Joined:
    Nov 16, 2017
    Messages:
    198
    Occupation:
    Simulation Engineer
    Location:
    akron,ohio
    Balance:
    1,737Coins
    Ratings:
    +226 / 1 / -0
    My Motion Simulator:
    AC motor, 6DOF
    Yes, the estop/pause code starts in the controller.ino file,

    void InterfaceMonitorCode( void * pvParameters ){
    for(;;){
    while (Serial.available () > 0)
    processIncomingByte (Serial.read ());
    checkEStop();
    checkBleNotify();
    }
    }

    This code uses the second core in the ESP32 to constantly look for incoming serial data, as well bluetooth data ,.. and looks at the estop button.


    I dont understand what you mean by ... "how does it get physical?"

    • Informative Informative x 1
  18. FeidhlimLee

    FeidhlimLee Member

    Joined:
    Oct 31, 2021
    Messages:
    61
    Balance:
    422Coins
    Ratings:
    +13 / 0 / -0

    Like we need a botton for estop, how does this botton get to trigger this part of the code.
  19. knaufinator

    knaufinator Active Member

    Joined:
    Nov 16, 2017
    Messages:
    198
    Occupation:
    Simulation Engineer
    Location:
    akron,ohio
    Balance:
    1,737Coins
    Ratings:
    +226 / 1 / -0
    My Motion Simulator:
    AC motor, 6DOF
    I use an NC resettable estop button wired into the pcb. When you press the button, the wire /signal is opened and the esp32 will detect this, and sets a variable indicating for the code to ignore position changes....

    But you should totally have a actual power kill estop as well...




    • Informative Informative x 1
    Last edited: Dec 4, 2021
  20. alxdr

    alxdr New Member

    Joined:
    Apr 22, 2015
    Messages:
    10
    Occupation:
    IT
    Location:
    France
    Balance:
    - 39Coins
    Ratings:
    +5 / 0 / -0
    My Motion Simulator:
    2DOF
    Awsome project, inspiring cause I want to make something not too big
    • Friendly Friendly x 1