Digital RC Servo Jitter

I'm working on building a low-cost precision 3 axis stage actuated by
small digital RC servos. It seems that the digital servos I'm using (JR
DS368's) don't run smoothly between steps. Even when I drive them with
a 32 bit PWM controller, the motion appears choppy, and this choppiness
is effectively transmitted directly to the stage (current
implementation has no damping built in).
My question is, is this jitter/choppiness simply inherent in digital
servos because of the fast response time, or is there some way to
mitigate it? Has anyone seen a digital RC servo that runs as smoothly
as an analog servo? The reason for choosing the DS368 is the high
resolution (at relatively low cost) - approximately 5900 steps over 120
degrees.
Thanks,
Aaron
Reply to
amhoov
Loading thread data ...
It sounds like the various gains of the PID algorithm used are not tuned to your system.
The classic tuning method is this: (1) set all gains to zero. (2) Increase the proportional gain until the motor starts to jitter. (3) Increase the integral gain until the jitter stops. (4) Increase the differential time until the response time is acceptable.
Reply to
mlw
As far as I know for these RC servos, the controller gains are not tunable. Typically, the microchips are built into the servo and programmed for some single response (exceptions being some HiTec programmable servos). Also, I'm pretty sure that standard RC servos only do PD control.
I was just wondering if there might be some other way to address the problem that doesn't involve controller gains, or if, perhaps, the problem stems from something other than the gains programmed into the servo.
-aaron
Reply to
amhoov
I would suspect the following:
Either your mechanism is not behaving/designed properly,
You are not providing the servos with a proper drive signal.
Mike
Reply to
blueeyedpop
I'm not that familiar with digital servos, but the problem maybe with your #'s ... 5900 steps in 120 deg. Roughly speaking, this corresponds to 5900 steps for 1.5 msec change in pulsewidth [assuming 1 msec change gives the usual 90 deg movement for these servos], and this corresponds to 1500/5900 = 0.25 usec/step resolution. I'll bet the servos were shipped to you with a setting more like 1-2 usec step resolution and a deadband of 2-4 usec. This would make them work, right out of the box, similar to std analog servos.
Also, digital servos are much more prone to jitter on the incoming signal than analog servos. A guy on another forum had a problem running digital servos from the usual hobby-level servo controllers. The p/w stability and resolution accuracy just wasn't good enuf. But this should not be a problem with 32-bit hardware generated PWM.
Also, digital servos draw a lot more current than analog, so your power leads may also be a problem. Inductance in long wires can lead to ground bounce, which is the reference signal for the pulsewidth input. You might try short power supply wires, and add bulk and bypass filtering to the servo power buss. Also, check that your power supply is very stable.
- dan michaels
formatting link
=======================
Reply to
dan
Is a digital servo capable of resolving its current position into 5900 descrete steps in 120 deg of rotation? If so, how does it do it? I assume it is not a typical pot that it uses.
Reply to
Si Ballenger
A digital servo without its corresponding programmer is really just an expensive analog servo with a little more torque. I am not familiar with the JR digital servos, but others like those from Hitec ship with "nominal" settings programmed in. If you want to take advantage of all the features of the servo you need to program it.
If you think about it, .001ms deadband is about guaranteed to give you jitter unless your signal is crystal-steady. This is seldom the case.
Finally, you don't mention the mass of the stage you are moving. These are very small servos. The higher the mass, the more the overshoot, the greater the jitter.
-- Gordon
Reply to
Gordon McComb
"blueeyedpop"
I would say the exact same thing.
When I was playing around with RC servos, I got the same jittery. But when I was controlling the servo with the remote control and receiver, no jittery. So my conclusion is that it must be possible to make it jittery free, it's just a question of refining the PWM timing.
Reply to
Padu
As for the 5900 steps, this is simply a number advertised by JR. They also state it as a deadband of less than .001 ms.
I haven't really looked at the steadiness of my signal, however. I was just assuming the signal was fine since I'm controlling the servo using a 32 bit PWM signal from a Quanser board with Matlab and xPC.
Ground bounce and power supply stability could also be problems (as a mechanical engineer I have near zero electronics knowledge). When I drive it from the Quanser, though, I'm using a regulated 5 Volt DC power supply. However, I've also been testing it using the 8 bit PWM on a Mini-SSC II board. Power supply for this board is some crappy regulated wall wart.
The stage itself is a compliant mechanism utilizing flexures rather conventional mechanical components and its mass is around 100-200 grams. More significant is probably the spring force that needs to be overcome for actuation, but at its max, it's only about .2N.
Reply to
amhoov
Plus the best pulsewidth resolution you can get is about 4-usec.
Reply to
dan

PolyTech Forum website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.