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

Motion control software question.

Discussion in 'DIY Motion Simulator Building Q&A / FAQ' started by Rob Povey, Jul 23, 2017.

  1. Rob Povey

    Rob Povey New Member

    Joined:
    Jul 8, 2017
    Messages:
    13
    Location:
    Redmond USA
    Balance:
    332Coins
    Ratings:
    +2 / 0 / -0
    I'm still in the planning stages, for my 2DOF rig, and I had a couple of questions.

    As far as I can see SimTools provides the motion controller with position information.
    Do most of the sims on here try and synchronize the motion between the axis, like a CNC controller, or do they just treat them as individual axis?
    I assume that SimTools is sending one position packet per game frame?
    Is there any time formation available to the controller?
    Do the controllers even try to deal with variation is game frame rate?

    I intend to build my own controller, and I have absolutely no intuition on what's important for good motion cues.
  2. noorbeast

    noorbeast VR Tassie Devil Staff Member Moderator Race Director

    Joined:
    Jul 13, 2014
    Messages:
    21,162
    Occupation:
    Innovative tech specialist for NGOs
    Location:
    St Helens, Tasmania, Australia
    Balance:
    148,658Coins
    Ratings:
    +10,915 / 54 / -2
    My Motion Simulator:
    3DOF, DC motor, JRK
  3. Rob Povey

    Rob Povey New Member

    Joined:
    Jul 8, 2017
    Messages:
    13
    Location:
    Redmond USA
    Balance:
    332Coins
    Ratings:
    +2 / 0 / -0
    Thanks for the link, but it doesn't answer my question, it's talking about a single axis.

    I understand how controllers work and how PID loops work, I've written controllers for CNC devices, what I'm asking is specifically, assuming that the controller can reach the target positions faster than the input from the controller, is there anything that synchronizes the motions of the individual servos i.e. Let's say one motor has to compensate for error x and the other for error 10x, is the velocity of the axis with the smaller error limited so that both motions finish simultaneously.
    My guess is that the position changes are frequent enough and small enough, that most simulators don't bother.

    Having said that by not synchronizing the axis, the actual motions will be different that the requested by some small margin, and I wonder if it's noticeable, or if anyone has done any tests.
  4. Zed

    Zed VR Simming w/Reverb Gold Contributor

    Joined:
    Apr 4, 2017
    Messages:
    1,040
    Location:
    USA
    Balance:
    5,841Coins
    Ratings:
    +1,040 / 4 / -0
    My Motion Simulator:
    2DOF, DC motor, JRK
    @Rob Povey - take this with a grain of salt since I'm still learning, but my understanding is that the data collected from the sims are the positional data moment to moment however often the sims update it. I believe that SimTools takes the position changes and turns those into accelerations and though magic/equations, what you get at the motion platform side are poses updated however often. You can mix inputs to each actuator so you get yaw and acceleration and stuff like that so in a 2 dof example, you get one motor going nuts as you accelerate through a curve but the other one not moving so much or maybe even moving the opposite direction you would get for pure acceleration or pure curve. At the extreme are the 6 dof rigs that have all 6 actuators needing to work together to position the seat in space appropriately.

    But all the actuators get from Sim Tools is position commands (e.g. "go to here") and the actuators then try to go there. Since they have feedback, the motor controllers are what see the errors in position and drive the motors harder or softer as need be to get to where they are commanded to go. And they get there or they don't depending on how powerful the motors are, geometry, available time, and such but at least are trying. But I think SimTools is just blindly outputting position information and isn't actually managing the feedback loop. It's up to the motor controllers and hardware to do what they are supposed to do to get a platform that responds faithfully to the commands.

    If an actuator doesn't have far to go it stands a good chance of reaching its position in time (before the next commanded position) while one moving a lot may not actually make it. If a sim isn't powerful enough I could see it having more of the latter cases than the former and the platform not feeling "right". My guess is that most platforms usually don't actually hit the commanded positions in time which is all right as long as they don't get "sloppy" about it. I would think if they actually did hit their positions all the time you would start feeling the vibrations from the position update rate. If they don't hit their positions, you feel a much smoother force that is only changing in magnitude which I think would be much less noticeable.

    So SimTools is open-ended with no feedback (I believe) with no synchronizing between actuators other than them all getting their position information roughly at the same time, and the motor controllers themselves are what do the error stuff and modify their outputs in proportion to the magnitude of the errors - PID or not. The errors and feedback are really up to you. That opens SimTools up to be able to work with all kinds of actuators and lets builders use what works best for them.

    At least that is how I believe it all works and seems right to me from everything I've read. The folks who wrote the software would be the best to answer, though. Now to sit back and see if I got it right or wrong. :popcorn
  5. SeatTime

    SeatTime Well-Known Member

    Joined:
    Dec 27, 2013
    Messages:
    2,573
    Occupation:
    Retired
    Location:
    Brisbane Australia
    Balance:
    28,370Coins
    Ratings:
    +2,844 / 39 / -0
    My Motion Simulator:
    AC motor, Motion platform
    Agree with @Zed, Simtools just sends out the data blind and then is up to you to do the rest. The better/more reactive you have built your sim the more chance you have of it being in synchronisation with the game telemetry data. Its why I went to allot of trouble making my sim frame very light - inertia is not your friend :) - especially as a DIYer you are not using big high powered expensive servos. Said he who is now fitting a DD Wheel :rolleyes: - although I am removing weight from other areas to offset this system change.
    • Like Like x 1
  6. Rob Povey

    Rob Povey New Member

    Joined:
    Jul 8, 2017
    Messages:
    13
    Location:
    Redmond USA
    Balance:
    332Coins
    Ratings:
    +2 / 0 / -0
    Thanks for the responses, I guess that's inline with what I assumed.
    The reason I asked, is that dealing with the axis as independent entities is trivial from a control standpoint, trying to synchronize them requires about 10x as much code, though it's not all that complex.

    I guess I can try it both ways and see if I can even see/measure a difference.

    On the mass front I was surprised at all the talk of actuator speed on the forums, while I guess it's a measure of performance, it doesn't seem like it tells the real story. No actuator will start at full speed, given a reasonable speed rating, the ability to start the mass moving, and invert it's direction, seem a lot more critical to me.

    My intent is to build custom actuators like yours, but using brushless servos and encoders. I intend to use 10mm pitch leadscrews to improve the maximum speed, I did some back of the envelope math and even with the massive mechanical advantage of the screw, just to overcome the rotational inertia of the rig and accelerate it to the maximum 300mm/s or so takes about 0.1s.
    Interestingly enough with a 5mm pitch leadscrew the maximum speed drops somewhat (not quite half because usable torque becomes the limiting issue at high RPM and the increased mechanical advantage offsets it), but the time to accelerate the mass is more or less the same, and you can double the supported weight for lower speed moves.

    I'm away from home right now, so all I can really do is plan, back in a couple of weeks, when I can get started.

    I'm sorely tempted by the OSW wheel, definitely on the upgrade list.

    Thanks again to everyone whose responded.