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 3DOF motion simulator with linear actuators

Discussion in 'DIY Motion Simulator Projects' started by Martti Rand, Feb 27, 2023.

  1. Martti Rand

    Martti Rand New Member

    Joined:
    Sep 12, 2020
    Messages:
    7
    Occupation:
    Software developer
    Location:
    Tallinn, Estonia
    Balance:
    98Coins
    Ratings:
    +11 / 0 / -0
    My Motion Simulator:
    3DOF, Motion platform
    My motion simulator project started actually as another project. I dreamed about omni threadmill which I could use for moving around in virtual reality.
    So I wanted to try out simpler version and made sliding platform on which I can do "moon walk" and walking on place. It was tilting sliding platorm as pitch and roll.
    For this I first built linear actuators. I got inspiration from FlyPT - 6DOF Brushless DIY Actuators project and have chosen many parts from that project.
    Actuators are using SFU1605 ball screw rods with 36V 4000RPM 0.44Nm 184W Brushless DC Motors from STEPPERONLINE with simple BLS-510 BLDC motor driver.
    I used ESP32 boards with firmware from FlyPT project to control actuators via USB interface.

    This is the first version of the actuator.
    PXL_20220807_132345378.jpg

    PXL_20220807_132115038.jpg

    Turned out that the motor of the actuator was not powerful enough to properly test motion platform. Also motor controller has not enough options for fine tuning actuator movements.
    So I improved actuator build with much more powerful motor and controller. For next ones I used D6374 150KV BLDC motor with max torque of 3.86Nm paired with AMT102-V 8192 CPR encoder. For motor controller I chose ODrive for plenty of control and power output. Also actuator frame is now made from steel.

    PXL_20220730_151017223.jpg

    PXL_20220807_130233499.jpg

    Testing out the new actuator video

    Testing out sliding platform with one axis. I used Kinect 2 for tracking body movement and adjusting tilt according to position.


    Back to 3DOF motion simulator build

    As the new actuator working good, I constructed three of them for my simulator.
    Here is CAD drawing of platform.
    Actuators have cnc like mounting plate with mounting holes.
    Platform plate is connected with actuators using male threaded single row joint rod ends. They are fixed with 3D printed adapters to mounting plates. Other half is fixed to platform plate with long M12 bolts. Probably need to enforce those connections with plate.
    motion platform cad screenshot.jpg

    and actual build this far. Screwed straight to the floor with hinges at the moment. Used 21mm plywood for plate.

    PXL_20230227_122518165.jpg

    PXL_20230227_122719005.jpg

    For powering the rig, there is Mean Well 2.4 kW, 48 VDC, 50 A PSU.


    Next steps

    Integrate the rig with SimTools and test out the platform.
    Install car seat, build FFBoard based direct drive wheel and petals.
    • Like Like x 2
    • Winner Winner x 1
  2. Martti Rand

    Martti Rand New Member

    Joined:
    Sep 12, 2020
    Messages:
    7
    Occupation:
    Software developer
    Location:
    Tallinn, Estonia
    Balance:
    98Coins
    Ratings:
    +11 / 0 / -0
    My Motion Simulator:
    3DOF, Motion platform
    Despite having difficulties finding time for the project, I finally have a working rig.

    I reinforced the joints with metal parts, installed some safety dampers for actuators in case motors lose power and platform fall down and put motor controllers and PSU into the enclosure.

    Next I installed my old Saab 900 electric seat with functional seat positioning.

    To save time I chose to buy wheels and pedals instead of building ffboard based wheel as I planned earlier. I chose Fanatec CSL DD Ready2Race Bundle. It came with CSL pedals, CSL steering wheel P1 V2 and CSL Direct Drive wheel base with max 8Nm of torque.

    I did a simple wood profile based fixture for wheel and pedals.



    Simtools integration

    As I am using Odrive for actuators control, there is no direct support for Odrive from Simtools and no interface plugins.

    I decided to use a can bus for robust communication and to use the usb-can adapter I had laying around. It is AVR controlled USB<>CAN Bus Interface by Michael Wolf.
    As firmware source code was provided, I modified the firmware to get it to work with Simtools. Simtools axis data is sent via serial interface and converted to can frames. Can frames are sent to actuators in format suitable with the Odrive can interface. Incoming axis data includes all three axis positions and will be relayed to all actuators almost simultaneously. Actuators are selected by can node id.

    I spent a lot of time configuring Odrive to control actuators rapidly enough and with good response. Currently I got actuators working 200mm/s although theoretically it is possible to achieve over 400mm/s with chosen motors and encoders.


    Testing equipment

    I have tested the rig with DIRT Rally 2.0 in SteamVR mode. Currently no motion compensation.
    PC specs: Core i9 13900, 32GB DDR4, Z790 chipset, RTX 4090 graphics.
    For VR, I have Meta Quest 2 and use it via Airlink connected to PC WiFi6 adapter. Airlink reliability is quite poor.

    Test drive video link

    PXL_20230925_133215269.jpg

    PXL_20230925_133229311.jpg

    PXL_20230925_152902085.jpg

    PXL_20230926_114250248.jpg


    Future improvements

    Replace Saab seat with proper rally seat as current one doesn't offer enough side support and is simply too soft.

    Actuators are quite loud at the moment. I think it's because of no vibration dampening.

    Also the PSU is noisy and should replace ventilators.

    Fine tuning axis parameters in Simtools. They have pretty modest settings at the moment.

    If I have more time then add a 4th actuator for 4DOF.
    • Like Like x 2
  3. noorbeast

    noorbeast VR Tassie Devil Staff Member Moderator Race Director

    Joined:
    Jul 13, 2014
    Messages:
    20,551
    Occupation:
    Innovative tech specialist for NGOs
    Location:
    St Helens, Tasmania, Australia
    Balance:
    145,124Coins
    Ratings:
    +10,778 / 52 / -2
    My Motion Simulator:
    3DOF, DC motor, JRK
    Nice work :thumbs

    Any chance of sharing the modified Odrive firmware you got to work with Simtools, I am sure others would likely appreciate that.
  4. Martti Rand

    Martti Rand New Member

    Joined:
    Sep 12, 2020
    Messages:
    7
    Occupation:
    Software developer
    Location:
    Tallinn, Estonia
    Balance:
    98Coins
    Ratings:
    +11 / 0 / -0
    My Motion Simulator:
    3DOF, Motion platform

    I didn't modified ODrive firmware, but USB-CAN adapter firmware which communicates with ODrive va can bus.
    That adapter is open source project with firmware, schematics and gerber files. I modified that firmware.
    Here are files for that.
    If anyone is interested in using that then I gladly help with any questions which may arise.
    • Winner Winner x 1
    • Informative Informative x 1
  5. Airbas72

    Airbas72 Member

    Joined:
    Oct 20, 2019
    Messages:
    37
    Balance:
    - 7Coins
    Ratings:
    +4 / 0 / -0
    My Motion Simulator:
    3DOF, Arduino
    It seems to me that the connection between the actuator and the platform is not reliable, because the plywood can crack or break, although the idea of the platform is very good.
  6. Martti Rand

    Martti Rand New Member

    Joined:
    Sep 12, 2020
    Messages:
    7
    Occupation:
    Software developer
    Location:
    Tallinn, Estonia
    Balance:
    98Coins
    Ratings:
    +11 / 0 / -0
    My Motion Simulator:
    3DOF, Motion platform
    I agree. Currently it is working but at some point I probably replace plywood with aluminum frames.
    Also actuator connections to ground are currently very basic and give a bit play, I am thinking about proper connections with separate ground frame.
    • Like Like x 1
  7. Airbas72

    Airbas72 Member

    Joined:
    Oct 20, 2019
    Messages:
    37
    Balance:
    - 7Coins
    Ratings:
    +4 / 0 / -0
    My Motion Simulator:
    3DOF, Arduino
    I like your project, I’m also developing a similar platform, so I pay attention to the little things, you already have experience and I’m glad that you share it.
    • Like Like x 1
  8. Rosebomb

    Rosebomb New Member Gold Contributor

    Joined:
    Aug 28, 2022
    Messages:
    26
    Balance:
    105Coins
    Ratings:
    +0 / 0 / -0
    My Motion Simulator:
    3DOF, DC motor, Arduino
    I can't open the file for some reason any other way to get it?
  9. Martti Rand

    Martti Rand New Member

    Joined:
    Sep 12, 2020
    Messages:
    7
    Occupation:
    Software developer
    Location:
    Tallinn, Estonia
    Balance:
    98Coins
    Ratings:
    +11 / 0 / -0
    My Motion Simulator:
    3DOF, Motion platform
    • Useful Useful x 2
  10. Rosebomb

    Rosebomb New Member Gold Contributor

    Joined:
    Aug 28, 2022
    Messages:
    26
    Balance:
    105Coins
    Ratings:
    +0 / 0 / -0
    My Motion Simulator:
    3DOF, DC motor, Arduino
    looking at that and the problems i have had finding info i can follow about getting odrives to work bldc linear actuators may just be to much for me to figure out.
  11. Martti Rand

    Martti Rand New Member

    Joined:
    Sep 12, 2020
    Messages:
    7
    Occupation:
    Software developer
    Location:
    Tallinn, Estonia
    Balance:
    98Coins
    Ratings:
    +11 / 0 / -0
    My Motion Simulator:
    3DOF, Motion platform
    Here is information about ODrive configuration and example CAN frames to send to ODrive via USB-CAN adapter.
    https://protoshop.ee/motion-platform/ODrive_configuration_and_commands.txt
    • Useful Useful x 1
  12. Rosebomb

    Rosebomb New Member Gold Contributor

    Joined:
    Aug 28, 2022
    Messages:
    26
    Balance:
    105Coins
    Ratings:
    +0 / 0 / -0
    My Motion Simulator:
    3DOF, DC motor, Arduino
    Thank you. I will try this. I like the use of linear rails. I am considering using them for surge but was concerned of strength i think your build has convinced me.
    Last edited: Feb 13, 2024