Continuous rotation servos
How sophisticated are these things?
I've been starting to work with a Vex continuous rotation servo. It works, I can get it to rotate in either direction at different speeds, but can't find much documentation describing how they're designed to work. About all I found was a maximum rotation rate (100 RPM).
For a continuous rotation servo, are the pulse widths supposed to rotate them with speed proportional to the change in pulse width from the nominal 1.5 milliseconds?
Are they designed to maintain a requested speed over small variations in load, like to how standard servos maintain a requested angle over a range of load?
When I google for continuous rotation servos, what mostly comes up are pages describing how easy it is to convert a position servo to a rotation servo. But those hacked servos generally seem to just bypass the internal pot, so do they wind up with any sort of speed control? I've never seen any discussion on how well (or how poorly) those hacked servos work when compared to a servo that had been designed for continuous rotation (assuming that some servos are designed for that).
I've been starting to work with a Vex continuous rotation servo. It works, I can get it to rotate in either direction at different speeds, but can't find much documentation describing how they're designed to work. About all I found was a maximum rotation rate (100 RPM).
For a continuous rotation servo, are the pulse widths supposed to rotate them with speed proportional to the change in pulse width from the nominal 1.5 milliseconds?
Are they designed to maintain a requested speed over small variations in load, like to how standard servos maintain a requested angle over a range of load?
When I google for continuous rotation servos, what mostly comes up are pages describing how easy it is to convert a position servo to a rotation servo. But those hacked servos generally seem to just bypass the internal pot, so do they wind up with any sort of speed control? I've never seen any discussion on how well (or how poorly) those hacked servos work when compared to a servo that had been designed for continuous rotation (assuming that some servos are designed for that).
Comments
http://www.parallax.com/dl/docs/books/edu/wamv2_2.pdf
After I posted this, I found that the Parallax continuous rotation servo PDF manual does answer the question that for their servo, speed is proportional to the pulse width.
I'm just kind of curious about these things in general - it seems like it's hard to find any information other than the most casual "try this - it works" sort of advice.
I was hoping for more of a datasheet set of specifications.
I'm guessing that in a conventional servo, the incoming pulse width gets converted into a voltage, it's compared to the voltage at the pot, the difference is amplified and is applied to the motor, driving the motor to turn the pot in the direction to minimize the voltage difference.
That gives feedback to correct the angle to whatever you asked for, so if you load the servo, it will still try to go to the requested angle.
But it seems like continuous rotation servos have no speed feedback. The pulse width still sets a voltage, which gets compared to a fixed resistor divider, so you just get a straight voltage proportional to the incoming pulse width, that gets applied to the motor.
So there's no speed feedback. Add a load to a continuous rotation servo and the speed changes, right?
I'm asking because I want to use one of these in an application where the speed needs to be at least somewhat steady. But this might work; I'll try it out. I don't have all that much of a load.
Any load applied to a continuous rotation servo will alter it's speed - it has no way to sense the load so it cannot compensate.
Rich H
No difference. No feedback. Per David B, any load slows the motor.
Modified CR servos don't offer much graduation in speed control. On many, if 1500us is centered, then then the range where motor speed is affected is a fairly limited band around center. It might be as little as 50 or 100us either way, making anything below (say) 1400us or above 1600us fully on.
Considering that the typical analog servo has a deadband of between 4 and 8us, a 100us range for speed allows for only 10 or 20 discrete steps, if that.
There are some factory-ready CR servos that exhibit better speed control. The GWS S35 is a bit better in this regard. It's made for CR use, and has no potentiometer inside (centering is set digitally). I haven't recently checked the Parallax CR servos, but I'm pretty sure those are factory modified Futabas, and they keep the pot for re-centering. There's also the Spring RC servo that some folks sell, but I don't have direct experience with it.
All this said, assuming you're not looking for super accuracy, you can get acceptable speed adjustment (note I didn't say speed control) with servos using an external feedback mechanism like an optical encoder. The Wheel Watcher is one commercial example, or you can make your own if you're handy. The Nubotics site has example code for the BS2, but not for the Prop.
-- Gordon
That's correct, Gordon. They're a factory-modified version of the Futaba S-148 with a potentiometer we selected.
Ken Gracey
I may just have to hook up the Parallax USB oscilliscope I won and check the signal going to the motor.
I'll be using the servo to rotate a mirror to add scanning to an IR sensor. I'll need a mirror position sensor anyway, so the same sensor that fires on mirror position can also be used to get speed feedback for applying minor adjustments, so as long as the speed is reasonably consistent then the servo should work fine for my needs.
erco, I just ran across this "open servo" forum -
http://www.openservo.com/
I haven't browsed around there much but they seem to have quite a lot of discussion about servos. Maybe they'll have some info on dynamic braking.
That sounds about right. The motor probably isn't being left to just float. One side will be ground, the other PWM. The net effect is that the motor terminals are shorted through the driver when PWM is 0, causing the motor to brake.
The bridge in a servo works just like any other bridge, though there could be differences from one servo model to the next. There could be some servos that when just "holding" put the PWM in hi-Z state, which would cause the motor to coast.
-- Gordon
I already have the Vex continuous rotation servo and a box of Vex mounting hardware, so trying that approach seemed like a good thing to try out; maybe a fixed speed motor would be better once I know what speed would work the best.
I'm using a propeller and have plenty of pins and cog capacity, so that's not an issue.
I was browsing some servo controller ICs, and one of them listed the states as CW, CCW, and "braking" between them, so while it didn't say how it accomplished it, it does confirm that braking is being performed.
For the benefit of lurkers and those who aren't up on their servos, the S148 is the workhorse of the servo industry. It's what the better standard servos are modeled after. While the S148 is technically discontinued by Futaba, it's still for sale, and its "recommended" replacement is a cheaper made model that just doesn't have the physical features (e.g. plastic bushing rather than the two bronze bushings of the S148). Ideally Futaba will continue to pump these puppies out. Ken, I assume the Parallax standard (non CR) servo is also an S148?
-- Gordon
You're bouncing IR off a mirror? Remember the coating, and the surface (front or rear) will affect the quality of the beam.
In any case, for back and forth scanning with a servo, there are three general methods to control speed:
1. Use a digital servo where you can program it to move more slowly.
2. Program your controller to move the servo in increments, with delays between.
3. Use a serial servo controller that does #2.
Small stepper motors are handy for when you need precision in scanned sensors, since you can precisely control the position, speed, and movement of the scan, and coordinate that with reading the sensor. A stepper will scan the sensor in discrete steps, but the benefit here is that you take the reading between steps, not during.
-- Gordon
Ron
Unmodified there is no question about the speed. But modified losing the pot do I lose the speed?
Ron
Use thick wire to your servos!
Not EVERYTHING. Don't ask me about women. Or bikes. Or Stargate Atlantis. All are mysteries to me.
RonP: Unless you know those DS8717s can be hacked for continuous rotation I personally wouldn't want to risk $125+! These heli motors have to be super fast, and fairly powerful, so they're super expensive.
For that much money is there a reason you don't just go with a quality metal gearbox DC motor? You could probably get two motors, and an H-bridge, for the cost of one of these servos.
-- Gordon
I see no reason why the speed wouldn't remain after conversion to continuous rotation.
-- Gordon
Here's my visible demonstation of motor braking vs. coasting: http://www.youtube.com/watch?v=hGQEzz8CNIQ I added a DPDT relay to switch the motor leads together for braking. Coasting is the only option on a stock Scribbler, which uses a PCM speed controller and 2 DC motors.
If I can expect a significant speed increase I look into modifying them I have had them open to change the gears but didn't at the time see if they could be modified.
Thanks for the quick response Gordon and erco... You answered the question while I was typing this.
Ron