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

Question Have there been any exclusive feedforward (torque/current) controller builds?

Discussion in 'DIY Motion Simulator Building Q&A / FAQ' started by Koala-Balla, Jul 22, 2020.

  1. Koala-Balla

    Koala-Balla New Member

    Joined:
    Jul 22, 2020
    Messages:
    2
    Balance:
    25Coins
    Ratings:
    +1 / 0 / -0
    My Motion Simulator:
    2DOF, Arduino
    Looking to build my first sim, i'm planning on using an Ikea chair with 2DOF from wiper motors or equivalent. I'm wondering if any one has explored not using position control, I feel it may be possible to use torque/current control instead.

    It's definitely the long way around but think it would be an interesting challenge and may even provide better results while simplifying the hardware.

    Current thoughts are a person moving in the chair would disrupt the kinematic model of the system and mess with the current/torque feedback but are we really trying to accurately position a chair in 3D or apply an acceleration that resembles what would be felt in the car? The latter might even be better suited to torque control.

    I used the search function and couldn't find anything, if you could please point me in the right direction or provide any input it would be appreciated.

    Thanks,
    KB
    • Like Like x 1
  2. Gadget999

    Gadget999 Well-Known Member

    Joined:
    Dec 27, 2015
    Messages:
    1,897
    Location:
    London
    Balance:
    11,610Coins
    Ratings:
    +458 / 9 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino, 6DOF
    I was thinking about this some time ago

    If i am correct x simulator outluts positional data

    You will need to convert the position to a force value based on the mass of the driver/rig

    I am sure a bit of maths could be used to work it out. The maths may have to be different for a 2/3/4/6 dof
    • Like Like x 1
    Last edited: Jul 25, 2020
  3. cfischer

    cfischer Active Member Gold Contributor

    Joined:
    Sep 7, 2015
    Messages:
    343
    Location:
    Colorado
    Balance:
    2,509Coins
    Ratings:
    +241 / 1 / -0
    Actually the data from any of these games is force based. Its just that most peoples rigs use position to exploit that data. There are certain times when torque is better and certain times when position is better.

    For instance a g helmet would be better in torque mode. This is because the user will be moving thier head around as they wish and the system will apply a force to the head. Position is taken care of by the users neck muscles.

    However a moving chassis would suck in torque mode because a force would just push your whole rig to one side until you smash into the end stops.

    A seatbelt tensioner is another system that works well in torque mode because it only pushes your body into the seat and position doesnt come into play.

    A g seat could be built in torque mode but since it usually does move the body some position is more common.

    Nearly all of the systems in this hobby are position based. I would be curious if you have more examples of a system where torque control is appropriate.
    • Like Like x 2
    • Agree Agree x 1
  4. Koala-Balla

    Koala-Balla New Member

    Joined:
    Jul 22, 2020
    Messages:
    2
    Balance:
    25Coins
    Ratings:
    +1 / 0 / -0
    My Motion Simulator:
    2DOF, Arduino
    Thanks for the info, that's really interesting! I'm guessing the game must apply these forces to a kinematic model of the vehicle other wise a motor bike and car would experience the same movement or does the simulation software apply these forces to a reference model? Do you know if different cars feel different in the same game?

    You can accurately (in some specific cases) control position with torque feedback only, I was thinking maybe any inaccuracies wouldn't be a big deal as the force that made you move, not the final position, was where most of the sim experience came from.
    https://www.researchgate.net/public...to_Minimize_Sensitivity_to_Model_Inaccuracies
  5. cfischer

    cfischer Active Member Gold Contributor

    Joined:
    Sep 7, 2015
    Messages:
    343
    Location:
    Colorado
    Balance:
    2,509Coins
    Ratings:
    +241 / 1 / -0
    I would say these forces are the result of all the work of the physics engine in the game. The complexity of the model that produce these forces changes from title to title. The person from our community that writes a patch to reach into the game looks for the 6 degrees of freedom and a few others like rpm and speed that we use to move our simulators.
    These values represent the accelerations and rotations that the vehicle experience in the game.

    So a motor bike traveling at the same speed as a car around the same corner will feel the same in my motion rig. I can feel the difference between vehicles mainly because the vehicles have different geometry, spring rates, weight, motors etc. This data comes from the game. Simtools simply passes out what the game creates.

    As for accuracy of motion, our requirements are very loose. So we can use cheaper motors and less stiff rigs and get away with very acceptable sensations of driving.




    So for example, say you turn a race car in a long turn. The force that the car sees in the game might be 5m/s^2 or about half a g. I built a 2dof rig to tip me to the opposite side when I turn (sway). When I tune my motors I setup simtools tuning center that 5 and -5 are the max my sim can use. Then I set my axis assignment to have motor 1 move 100% in sway. In real life the max motion of my motor 1 is lets say 5 inches for easy math. This means that when I turn half a g in the game my seat moves 5 inches in the opposite direction (to make me feel like im pushed into my seat on the appropriate side).

    In order to make that motor move 5 inches, I've got an Arduino uno plugged into the computer and the motor at the same time. The Arduino gets updates from the game every 10 milliseconds and updates from the motors position (via a pot) even faster. Simtools converts the 5m/s^2 to a number usually 8 or 10 bits to send to the Arduino via serial. The Arduino has a pid loop in the code that sends motor commands to match the number from the game to the position of the motor.
    Last edited: Jul 28, 2020
  6. Trigen

    Trigen Active Member

    Joined:
    Nov 25, 2018
    Messages:
    472
    Balance:
    2,826Coins
    Ratings:
    +176 / 1 / -0
    My Motion Simulator:
    2DOF, 3DOF, DC motor, Arduino
  7. cfischer

    cfischer Active Member Gold Contributor

    Joined:
    Sep 7, 2015
    Messages:
    343
    Location:
    Colorado
    Balance:
    2,509Coins
    Ratings:
    +241 / 1 / -0
    You could yes. Its dead simple. Physics in - motor command out.
    Noorbeast shot you down in that thread because he was thinking you wanted to use the code verbatim. Like using speed (gamedash) as your input. So he suggested using simtools for g forces since thats what simtools outputs. You can use monstermoto shields for a motor drive but sabertooth would be much better.
  8. Trigen

    Trigen Active Member

    Joined:
    Nov 25, 2018
    Messages:
    472
    Balance:
    2,826Coins
    Ratings:
    +176 / 1 / -0
    My Motion Simulator:
    2DOF, 3DOF, DC motor, Arduino
    Is there something specific that makes the sabertooth good for this? I happen to have 2 of them
  9. cfischer

    cfischer Active Member Gold Contributor

    Joined:
    Sep 7, 2015
    Messages:
    343
    Location:
    Colorado
    Balance:
    2,509Coins
    Ratings:
    +241 / 1 / -0
    They are simply good and well accepted dc motor controllers. I think the sabertooth current limit feature (so it doesnt burn up) is worth using it alone. Any dc motor controller will work as they all work in torque mode unless there is another level of control applied on top of them.
  10. Trigen

    Trigen Active Member

    Joined:
    Nov 25, 2018
    Messages:
    472
    Balance:
    2,826Coins
    Ratings:
    +176 / 1 / -0
    My Motion Simulator:
    2DOF, 3DOF, DC motor, Arduino
    I see thank you!

    One more question if you dont mind. I see in the SMC3 app you have KP which i understand to be the strength/power of how to drive it to the point and you got PWMmax which is the speed. Im not 100% sure on this one. How does it determine the strength/power draw vs speed?