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

Any guides out there on how to build profiles?

Discussion in 'FlyPt Mover' started by Map63Vette, Mar 24, 2025 at 14:28.

  1. Map63Vette

    Map63Vette Active Member

    Joined:
    May 19, 2016
    Messages:
    166
    Occupation:
    Mechanical Engineer
    Location:
    Lawrence, KS
    Balance:
    655Coins
    Ratings:
    +50 / 0 / -0
    So after years of thinking about it and collecting parts, I finally got my 6DOF linear actuator rig built and ran it with a game for the first time this past weekend. It was really interesting to see the additional feedback that a 6DOF can offer over the old 2DOF I built before, but there is definitely some tuning that needs to happen as a lot of the motion, while novel, just doesn't seem correct. The vertical motion you get from going over bumps on a track in a racing game feels pretty good and really neat, but the general acceleration forces don't feel anywhere close to what I would expect to have in a car.

    So that being said, I'm wondering if there are any good walkthroughs or guides out there on how to set up and tune stuff. The actual rig setup I get and is pretty easy as I modeled my system in CAD and double checked everything with a tape measure to get rotation points and stroke lengths, so that part I'm good on. I also somewhat understand what the filters are and how they work or what purpose they serve, but how you actually tune these I think is where I could use some help. I read through the whole FlyPT Mover website and all the available filters and general design of the system, but nothing really touched on how to pick the numbers that go in the filters themselves. I did some reading on the forums here as well and found some bits and pieces (like one reference saying that the EMALP/EMAHP ratio is supposed to be something like 3-5:1 or vice versa), but beyond just throwing different numbers at my filters and doing laps, I feel like I'd just be brute forcing things and not really approaching it from a scientific or mathematical view.

    I was hoping there might be some kind of datalogging and comparison analysis that could be done, like logging the output from a game and using the graphical output on Mover or my motion controllers themselves to see what values I should be looking to change. For instance, I believe I should be able to log the input/output of my Kangaroo controllers to see how they are responding to position commands and if they are keeping up. The PID for the motors themselves are already tuned and handled by the autotune feature, but it might tell me that maybe I'm asking way too much of my rig and it can't keep up. Like I go into one corner on a track then snap back the other way, but the actuators are still moving the original direction and can't cope with the direction change. So I could use that data to go back to Mover and reduce the output to a level that my rig can keep up with, or something like that. Or is it all really just guessing and checking?
  2. cfischer

    cfischer Active Member Gold Contributor

    Joined:
    Sep 7, 2015
    Messages:
    380
    Location:
    Colorado
    Balance:
    2,727Coins
    Ratings:
    +266 / 1 / -0
    I would really like to see a way to conveniently get data out of mover (csv) for this kind of analysis. I've asked but it's not a huge priority so I don't expect anything soon.

    The idea with that data is then you could add a witmotion accelerometer/gyro and compare in excel. I've done this crudely with a udp logger (I think i used wireshark) in the past and it made me want to explore deeper.
  3. Map63Vette

    Map63Vette Active Member

    Joined:
    May 19, 2016
    Messages:
    166
    Occupation:
    Mechanical Engineer
    Location:
    Lawrence, KS
    Balance:
    655Coins
    Ratings:
    +50 / 0 / -0
    I think the main thing I'm trying to figure out at the moment is where I should be measuring stuff. My knee jerk reaction was that I should measure stuff in Mover and figure out filters to match the input of the game with the output of the system, but the more I think about it, the more I think that might not be the right place to be looking. Mover just commands a position (or possibly speed or other stuff, depends on your rig). It doesn't actually know where your rig is or care. It is not the thing doing feedback, that's what the motor controller is doing.

    What would be really nice would be if there was some kind of math formula that could help determine what range of EMALP and EMAHP values work with what actuator characteristics. For instance, as I understand it, the EMALP filter helps to cut the "noise" out of signals, so it would cut down on the rapid changes that an actuator might not be able to respond to to begin with. I get that a lower number means "more noise" or "detail" to the motion, but if your actuator isn't physically fast enough to respond, then there is a practical limit for what that could be.

    So what would be really nice to see would be something like "if your actuator loaded speed is 100-200 mm/s, try using EMALP values >300, if your speed is 300-400 mm/s you could go down to 150 on EMALP on the low end, etc." "Start EMAHP values at 4x your EMALP values and adjust up or down for X result" kind of thing.

    I think I should be able to just log my Kangaroos to see the input commands vs the actuator position feedback to see how badly they might be lagging. I'm not sure what to do with that information afterwards though.
  4. Aerosmith

    Aerosmith Active Member

    Joined:
    May 30, 2024
    Messages:
    388
    Occupation:
    self employed
    Location:
    Germany
    Balance:
    2,271Coins
    Ratings:
    +227 / 0 / -0
    My Motion Simulator:
    3DOF, AC motor
    A have to admit that I also have very limited knowledge of how to tune the filters in FlyPT Mover. I wish there was a good tutorial, somewhere. Until now I have tested some of the example setups that come with the software and only tuned the gain parameters of some of the pose components.

    But I have quite some experience of how to tune servo drives, mainly industrial servos for CNC machines, but the procedure is the same for sim rigs. The most important rule is to tune the innermost control loop first, that is, the one at the end of the chain of command and with the fastest response. If your motors have sloppy response the different feedback loops tend to fight against each other creating a chaotic result where it's hard to find out which parameter has to be adjusted in which direction.

    So before tuning filters in FlyPT Mover try to get the best possible response from the motors with a deterministic stimulus. Trapezoidal or triangle waves work best because opposing to sine waves they have sharp corners with sudden changes of acceleration.

    Servotuning.png

    Generally, the default parameters of servo drives are chosen very conservatively by the manufacturer to avoid oscillations independent of the load connected to the motors (left picture). But this means that the motor follows the command only with much delay and position error. Try to increase the gain (velocity gain first if you have nested control loops) to get the best possible result without oscillations or overshoot. (second picture) Adding velocity feed forward decreases the following error further (right picture).

    Industrial servos like the AASD15 and similar ones usually have a bandwidth in the 100Hz to 1kHz range. And 750W per motor even with a 10 or 20mm pitch ball screw generates forces higher than what feels comfortable. So you surely have to add low pass or spike filters to avoid excess jerking.

    With 12V DC motors and especially 5mm pitch screws the system is usually a bit underpowered and you quickly hit the limits of motor torque and speed. The low pitch means the rotational inertia is higher than the mass of the rig itself. This means the motor needs to draw very high currents to follow the commanded profile even if the top speed is within the rated RPM.
  5. Map63Vette

    Map63Vette Active Member

    Joined:
    May 19, 2016
    Messages:
    166
    Occupation:
    Mechanical Engineer
    Location:
    Lawrence, KS
    Balance:
    655Coins
    Ratings:
    +50 / 0 / -0
    That reminds me, I need to log my motor driver outputs as well. I've got a DC motor setup, but my controllers (Kangaroo) and my drivers (Sabertooth) each have their own USB connection and logging capabilities. The Kangaroo I would want to log for position feedback (like in your example pictures) to see if I'm even anywhere close to following the input commands that Mover is giving it. I would also want to log the Sabertooth output though to get an idea of what the motor draw is as I don't believe that info is passed through to the Kangaroo (I could be wrong though, I haven't played around in the logging part of their software that much yet).

    Interestingly enough, it doesn't seem like my system is pulling too much power, at least at the moment. In theory I'm pretty borderline on my power supply sizing to my motor draw, but even full heave movements haven't shut anything off or tripped any breakers just yet. I'm also not 100% sure if I'm plugged into two separate circuits in my house though. I know I have 4 motors on one outlet (2 power supplies), and 2 motor (1 power supply) on a different outlet, but I'm not sure if the outlets go to the same breaker. I would be a bit surprised if they didn't as they are ultimately on the same wall, but my house does have its funny moments.

    Would still be good to log the motors either way to get an idea of how hard they are being driven. I forgot to feel how warm they were after my couple of laps of testing in-game. I might be able to tweak the settings to get some more oomph out of them as well, though I should probably be more concerned about getting them all to similar speed settings. I figured running the system some would help everything to break in though, so I might wait a bit before getting too crazy with super fine tuning.