Hi,
I am using the LSS ST1 servo in a project that requires it to track trajectories with both slow and fast oscillatory components. I just got the servo today and have been struggling to get it to move smoothly. I am sending it sine waves of 0.1 Hz to 2 Hz with amplitudes varying from 20 to 40 degrees. I’m sampling the sine wave such that a new position is sent to the servo every 10 ms. I am using the D action without T or S modifiers. I’ve linked some videos below to show the setup.
I was expecting to see something like this upon starting everything up, but instead the servo was extremely jittery. Just to put this in context, I was using a Dynamixel AX-12A up until about a week ago—the AX-12A was perfectly smooth once I tuned its control parameters (compliance slope and compliance margin), but the form factor isn’t as nice as the LSS ST1s. Consequently, I think other variables in my setup, such as power supply, should be a non-issue here (for the record, I am using a 12V 5A power supply).
This led me to investigate ways of “tuning” the control parameters for the LSS ST1s. This has proven to be challenging, as there are a large number of variables…well, too large to exhaustively check within a reasonable amount of time:
- Angular stiffness
- Holding stiffness
- Angular acceleration
- Angular deceleration
- Max speed
I tested 37 different combinations of these 5 parameters without much luck. I was able to find some settings that worked better at low frequencies (e.g. 0.1 Hz), but these settings failed miserably at tracking higher frequencies such as 1 Hz, and vice versa. Some videos showing the severity of the issue I’m experiencing are below—for these videos, I left the max speed, angular acceleration, and angular deceleration to their default values (180.0, 100.0, and 100.0, respectively).
First test:
- Angular stiffness = 1
- Holding stiffness = 0
Video: https://drive.google.com/file/d/1YELRkszu1832WNrqcBmC9L4bGfVE_eiO/view?usp=sharing
Note that for most of the settings I tested, the servo was able to move smoothly from point A to point B when I sent the position commands > 1 second apart. The problem really only seems to arise when I sample a general trajectory and command the servo to track it.
I feel like I must be doing something wrong…perhaps it is strictly necessary for me to include a T or S modifier for each command.
I would really appreciate any suggestions. Thank you,
-Tyler
. Suffice to say, I will be sticking with the regular position command