Shop OBEX P1 Docs P2 Docs Learn Events
Continuous rotation servos — Parallax Forums

Continuous rotation servos

David BDavid B Posts: 591
edited 2011-07-27 16:21 in Robotics
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).

Comments

  • Mike GMike G Posts: 2,702
    edited 2011-07-26 12:08
  • David BDavid B Posts: 591
    edited 2011-07-26 13:19
    That Parallax manual doesn't say anything about continuous rotation servos except to be sure not use them for the demos it describes.

    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.
  • ercoerco Posts: 20,256
    edited 2011-07-26 13:25
    A CR servo is a CR servo, whether manufactured that way or modified from a regular position servo. Internal pot gets disconnected from the output shaft and nulled for no rotation at 1.5 mS pulse. Error signal control system provides proportional speeds from longer & shorter pulses. Most pots respond to pulses less than 1 mS and over 2 mS. Experiment! Modify a servo and see for yourself, it is quite easy. There are usually some internal mechanical stops which must be cut away, in addition to mechanically disconnecting the pot. You CAN use the exixting pot, but since the adjustment is quite fine, I prefer to replace it with a 10-turn trimpot. And it STILL drifts slightly!
  • David BDavid B Posts: 591
    edited 2011-07-26 14:06
    I was wondering how different the internal electronic control was.

    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.
  • W9GFOW9GFO Posts: 4,010
    edited 2011-07-26 14:40
    The feedback is still there but since it is disconnected from the output shaft of the servo, it never changes it's value.

    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
  • ercoerco Posts: 20,256
    edited 2011-07-26 15:43
    David B wrote: »
    I was wondering how different the internal electronic control was.

    No difference. No feedback. Per David B, any load slows the motor.
  • GordonMcCombGordonMcComb Posts: 3,366
    edited 2011-07-26 17:54
    Most continuous rotation servos aren't well suited for use in any application where speed control is needed. They don't do a good job of it when they're used for angular control. On all except maybe the more expensive digital kind (and often not even with those) the feedback doesn't bother with speed, except as part of the PID where the motor is slowed down as the error signal diminishes.

    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
  • Ken GraceyKen Gracey Posts: 7,387
    edited 2011-07-26 21:37
    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.-- Gordon

    That's correct, Gordon. They're a factory-modified version of the Futaba S-148 with a potentiometer we selected.

    Ken Gracey
  • ercoerco Posts: 20,256
    edited 2011-07-27 08:55
    @Gordon: Great info. Here's my question to you: a 1.5 ms pulse train (on my CR-modified servos) doesn't just stop a CR servo, it applies dynamic braking. I usually do that on a DC motor by shorting the leads together. How does a CR without any position feedback achieve that?

    I may just have to hook up the Parallax USB oscilliscope I won and check the signal going to the motor.
  • David BDavid B Posts: 591
    edited 2011-07-27 09:49
    This is very helpful; thanks to everyone.

    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.
  • ercoerco Posts: 20,256
    edited 2011-07-27 10:18
    @David: Why not just use a DC gearmotor as long as you're going to add an encoder? You can select the right voltage/gearing to give you the RPM you want, and just switch it on with a reed relay (or let it run continuously). It still uses one IO pin, but it frees up your processor (which is what?), no continuous pulse train output required.
  • GordonMcCombGordonMcComb Posts: 3,366
    edited 2011-07-27 11:08
    erco wrote: »
    @Gordon: Great info. Here's my question to you: a 1.5 ms pulse train (on my CR-modified servos) doesn't just stop a CR servo, it applies dynamic braking. I usually do that on a DC motor by shorting the leads together. How does a CR without any position feedback achieve that?

    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
  • David BDavid B Posts: 591
    edited 2011-07-27 11:19
    I'm kind of exploring how the IR temperature sensor signal can be focused and scanned, so the whole project is still kind of under development, and the speed control of the servo might be nice. Trying out the idea of whether continuous mirror rotation might work smoother than back-and-forth scanning.

    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.
  • GordonMcCombGordonMcComb Posts: 3,366
    edited 2011-07-27 11:30
    Ken Gracey wrote: »
    That's correct, Gordon. They're a factory-modified version of the Futaba S-148 with a potentiometer we selected.

    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
  • GordonMcCombGordonMcComb Posts: 3,366
    edited 2011-07-27 11:38
    David B wrote: »
    Trying out the idea of whether continuous mirror rotation might work smoother than back-and-forth scanning.

    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
  • ercoerco Posts: 20,256
    edited 2011-07-27 12:57
    Wow, Gordon. You have a snappy answer for EVERYTHING! Maybe you should write a book...! :)
  • RonPRonP Posts: 384
    edited 2011-07-27 13:01
    I've been wanting to ask this question for awhile. I have some of these servos they are fast at .07 compared to .22 sec which is the speed of the Futaba S148. I want to put them in a Prop-Boe when it comes out. Before I go hacking into them to make them to make them continuous rotation should I expect that their speed will show in the performance of the Bot after being modified using standard objects and PWM.

    Ron
  • ercoerco Posts: 20,256
    edited 2011-07-27 13:36
    That's three times faster, wow! But you don't get something for nothing. Either these servos have HOT motors that will demand much more current than regular servos to deliver high speed and good torque, OR they achieve the faster speed through less gearing, in which case they will have one-third of the torque of the 0.22 sec servos. Do you know which?
  • RonPRonP Posts: 384
    edited 2011-07-27 13:44
    The torque of these servos is 196 oz-in vs. 41.7 for the S148, you know erco I have no idea. Would the Bot be .15 sec faster and would that be noticeable? With todays batteries I don't worry much about current.

    Unmodified there is no question about the speed. But modified losing the pot do I lose the speed?

    Ron
  • ercoerco Posts: 20,256
    edited 2011-07-27 13:58
    Monster specs. Sounds like a very hot motor, so I bet you will retain speed and torque, but I'll defer to Gordon.

    Use thick wire to your servos!
  • GordonMcCombGordonMcComb Posts: 3,366
    edited 2011-07-27 14:00
    erco wrote: »
    Wow, Gordon. You have a snappy answer for EVERYTHING!

    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
  • GordonMcCombGordonMcComb Posts: 3,366
    edited 2011-07-27 14:02
    D'oh, I didn't answer the main question.

    I see no reason why the speed wouldn't remain after conversion to continuous rotation.

    -- Gordon
  • ercoerco Posts: 20,256
    edited 2011-07-27 14:05
    David B wrote: »
    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.

    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.
  • RonPRonP Posts: 384
    edited 2011-07-27 14:13
    These servos have served their purpose (pun intended) they have about two years of hard core 3D heli flight on them. I am getting new HV8717's. They do still have value in the used market but with 710mm blades spinning at +1900rpm nothing last forever and I would rather retire them than risk injury to anyone flying these things is a risk all you can do is limit it. There is no life expectancy that I know of for servos when they fail they fail. Plus it would be cool to have the fastest Prop-Bot, using the Boe-Bot chassis is why I want to use servos and I have 3 1-PING 2-Drive 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
  • ercoerco Posts: 20,256
    edited 2011-07-27 16:21
    Great thread. I think everyone learned something here!
Sign In or Register to comment.