| View previous topic :: View next topic |
| Author |
Message |
dsandber
Joined: 01 Aug 2006 Posts: 52
|
Posted: Tue Aug 01, 2006 1:28 am Post subject: Finished Servo For Sale? |
|
|
Hi,
I found out about this site when an engineer at Hitec told me they didn't make any servos that had a high refresh rate ( ~ 20 Khz ). He suggested I look into OpenServo!
I'm builting a robotic application where there is a lot of weight on a servo. It tends to oscillate and make an annoying buzzing sound. I was using the HS-805BB which is pretty heavy duty. I am switching to a HS-5955TG in the hope that as a digital servo the noise will be better. However its refresh rate is still pretty low ( 300 Hz ) so I suspect it will buzz as well. I would like to find a servo which refreshes outside the audio range ( 20Khz+ ) so that it is quiet.
I assume the OpenServo has adjustable PWM frequency.
Is there any way to buy a finished servo rather than purchasing one myself? I'm not in a big rush to learn how to solder SMT components even though its quite obvious that I inevitably will. All the newest parts are SMT only these days
Thanks,
-Dan |
|
| Back to top |
|
 |
mpthompson
Joined: 02 Jan 2006 Posts: 650 Location: San Carlos, CA
|
Posted: Tue Aug 01, 2006 3:03 am Post subject: |
|
|
Hi Dan,
I'm impressed that Hitec engineers know about OpenServo.
In any case, when you say ""high refresh rate"", what specific characteristic of the servo are you asking about? The ADC sampling rate of the potentiometer? The frequency of the PWM signal sent to the motor?
I suspect you are talking about the ADC conversion rate that drives the PID algorithm. If so, that is current set at 100Hz for the OpenServo. However I have driven it as high as 2000Hz with earlier versions of the OpenServo software. The AVR ATmega168 MCU we are using has a maximum sampling rate around 12KHz to 15KHz so that may be the practical upper limit of the OpenServo software. However, at that frequency I suspect there may be other software issues.
Right now no one is making the OpenServo for resale, but some people have asked me about it and I support their efforts fully. It will probably take a few months though for some to appear, if ever. Hopefully when they see your message they'll chime in with more information about possibility of someday being able to purchase an OpenServo.
-Mike |
|
| Back to top |
|
 |
dsandber
Joined: 01 Aug 2006 Posts: 52
|
Posted: Tue Aug 01, 2006 8:42 am Post subject: |
|
|
I would think refresh rate is the frequency with which the desired position is compared to the actual position, and the PWM frequency updated. Sounds like you're saying that this is currently limited by the ADC frequency.
I'd imagine that 15k ADC sampling would be sufficient even though it is in the audible range. I was using a PID controller to control a motor with an ATMega168 and it was quiet, despite the 15k limitation.
Perhaps there's more to the noisy/quiet issue than the outer loop frequency. Tomorrow I'll find out how the digital servo performs.
Perhaps in addition to torque there should be a parameter which specifies the noise when a given weight is hung at an inch off the axis  |
|
| Back to top |
|
 |
stefanengelke
Joined: 03 Jan 2006 Posts: 59 Location: Stuttgart, Germany
|
Posted: Tue Aug 01, 2006 9:11 am Post subject: |
|
|
Hi Dan,
the frequency of oscillation under heavy load is not only depending on the frequency of your controler. Your description sounds more like a unstable behavior of the control loop. The control parameters of the servo were adjusted to control the servo like it is. Of course they tried to make it as robust as possible against disturbances (like heavy load) but if the dynamics of the servo system vary to much, the quality of the control behavior suffering losses. This is also the case if you have a continuous controler. The servo will also oscillate with the eigenfrequency of the closed control loop if the control parameters are not adjusted for such a load, even if you have an infinitely fast controler. |
|
| Back to top |
|
 |
ginge Site Admin
Joined: 14 Jan 2006 Posts: 1029 Location: Manchester, UK
|
Posted: Tue Aug 01, 2006 2:07 pm Post subject: |
|
|
I thought i'd chime in
I am working to get somone to make these units for me at a reasonable price, unfortunately I am getting some very silly prices for small runs (200 units). With the current quotes, the cost per unit would be about $30, which is way too high considering. Who would have thought that Chinese labour was so expensive.
As Mike said, there will be a fairly long lead time to get this up and running (if at all) and I will announce if and when something happens.
With regard to your original problem of loaded servos buzzing...
I am hanging an entire robot hand off of a servo, the OpenServo does a fantastic job of controlling the load. I have no buzzing, or even oscillation issues now that I have tuned the PID values.
Cheers,
Barry |
|
| Back to top |
|
 |
dsandber
Joined: 01 Aug 2006 Posts: 52
|
Posted: Tue Aug 01, 2006 4:44 pm Post subject: Assembly |
|
|
| Olimex charges about $10/hr for assembly I believe. They're taking the month of August off however. |
|
| Back to top |
|
 |
ginge Site Admin
Joined: 14 Jan 2006 Posts: 1029 Location: Manchester, UK
|
Posted: Tue Aug 01, 2006 5:02 pm Post subject: |
|
|
| They look good too. Oh well. i'll shop around for some quotes. |
|
| Back to top |
|
 |
dsandber
Joined: 01 Aug 2006 Posts: 52
|
Posted: Thu Aug 03, 2006 9:27 am Post subject: |
|
|
Welp, I'm in trouble.
The new digital servo oscillates even more loudly than the old analog one.
The basic configuration can best be described as a 5lb 16"" rod which is connected to the servo at its mid-point.
I guess the inertia of the rod is completely messing with the PID parameters. As far as I can tell this isn't tunable in a stock Hitec digital servo.
Anyone have any ideas other than building an OpenServo? I'll do it if I have to, but I'm afraid it'll be a big distraction from the main project of building the robot itself.
Thanks!
-Dan |
|
| Back to top |
|
 |
ginge Site Admin
Joined: 14 Jan 2006 Posts: 1029 Location: Manchester, UK
|
Posted: Thu Aug 03, 2006 10:03 am Post subject: |
|
|
The only thing I can suggest is use a really basic analogue servo, and only send the PWM pulses to the actuator less frequently.
The older servos being a pretty dumb interface should work for you on this one. If you can break the PWM signal down so that it doesn't send in a continuous stream, you shoule be set.
|-----|_____|------|____|-----|
PWM PWM
on off
This should allow for the servo to settle a little before the next cycle of PWM comes through. If you find the right balance between the mark space of the PWM signal, you *might* be able to stop it from making horrible noise.
If you find the perfect balance, you should in theory be able to find values for the cycles that hold the servo in place without oscillations. Esentually you will be finding the stall current and voltage with the PWM, it should give a fairly stiff, but useable movement. Instead of the servo fighting to correct itself all the time, which will cause nasty oscillations, and the buzzing, leaving a settle time should allow the servo to relax for a small amount of time.
I have found similar problems before now, and sometimes it's much better to go with a simpler solution.
Barry
Other than that, I don't have any ideas. |
|
| Back to top |
|
 |
dsandber
Joined: 01 Aug 2006 Posts: 52
|
Posted: Thu Aug 03, 2006 10:30 pm Post subject: |
|
|
Hmmm...
Anyone interested in trading their moderately torquee and tunable OpenServo for an absurdly high-torque,tiny and expensive HS-5955TG?
Or alternatively sending me an extra OpenServo for $75 or so? |
|
| Back to top |
|
 |
mpthompson
Joined: 02 Jan 2006 Posts: 650 Location: San Carlos, CA
|
Posted: Fri Aug 04, 2006 8:03 pm Post subject: |
|
|
Sorry, I don't have any spare OpenServos at this time. I'm putting together an order to make a dozen servos for my robot and I could perhaps make a few spare, but it will probably be a while before I get them made as it's getting tougher for me to find spare time to work on them. You can check back with me in a few weeks to see where things stand and I perhaps can get you an assembled OpenServo.
Something you need to keep in mind is that the OpenServo isn't controlled with standard servo PWM signals, but rather an I2C interface. We've talked about creating a PWM version of the OpenServo, but nothing has been done in this direction. I just mention this as it is something that needs to be taken into account when contemplating using the OpenServo.
-Mike |
|
| Back to top |
|
 |
guru
Joined: 03 Jan 2006 Posts: 128 Location: St Pete Beach, FL
|
Posted: Thu Aug 10, 2006 9:21 pm Post subject: |
|
|
dsander: I think what you are referring to with the noise of the servo is not the servo control loop frequency but the frequency of the output PWM. The coil in the motor can cause audible noise due to PWM frequency. For this reason I chose a PWM frequency about 25KHz, outside the audible range when I made my superservo (PIC based servo). I did hear high pitch noise when using a smaller freq at one point during development.
The control loop bandwidth/freq was much lower than the 25KHz PWM freq. I maxed that out at 8500KHZ, which one of the more expert persons on here mathmatically determined was OVERKILL!
I am sure the Atmel's (openservo's) PWM output freq could be set to higher than audible range. This freq is based on the clock freq ( a clock divider), but normally does not take extra cpu cycles as the PWM is hardware based. So the Atmel's ADC range shouldnt have anything to do with PWM limitation. I think the PIC ADC limit is less than 10KHz too.
Changing the PWM freq wont affect oscillation though I am betting, just t he audible noise.
Also, in case you ask: You are welcome to my source files on the PIC ( I think they are in the repository), but, you should use the Open Servo, it has surpassed my implementation a while ago with all the people working on it.
C |
|
| Back to top |
|
 |
dsandber
Joined: 01 Aug 2006 Posts: 52
|
Posted: Thu Aug 10, 2006 9:34 pm Post subject: |
|
|
There's a visible oscillation in the rod ( see above ) connected to the servo, so I'm pretty sure its not the PWM frequency.
I'm pretty sure the inertia of the rod is causing trouble with the PID loop.
I'm going to try to damp the oscillation by adding friction to the system. Eventually I'll either buy an OpenServo, make my own, or connect one of my existing servos to an h-bridge and A2D on the uC.
Cheers,
-Dan |
|
| Back to top |
|
 |
Zeddicus
Joined: 21 May 2006 Posts: 109
|
Posted: Tue Aug 22, 2006 7:48 pm Post subject: |
|
|
Hi,
my turn to dip the spoon.
If there is a visible oscillation of the rod, then there is no doubt that you have an unstable control loop. I believe there is a way to change the parameters for a digital hitec servo, but you have to buy a programmer from them or something, I don't really know the details.
In any case, I'd move to openservo if I were you, because here you have full control over what is going on with the servo. If you don't like it, you can change it. If it doesn't work, you can fix it, and so on hehehe
Cheers,
ZZZ
----------
Zedd? Where's Zedd?? |
|
| Back to top |
|
 |
jstrout
Joined: 26 Aug 2006 Posts: 3
|
Posted: Sat Aug 26, 2006 4:55 pm Post subject: Re: Assembly |
|
|
| "dsandber" wrote: | | Olimex charges about $10/hr for assembly I believe. They're taking the month of August off however. |
They do look quite promising. On their home page they have a ""Gadgets"" link (http://www.olimex.com/gadgets/) which leads to a page of prepared boards you can order as either just the board, or completed (assembled & tested) boards. But currently they only have one offering -- the openEEG board (http://openeeg.sourceforge.net/).
So it seems they're well set up to add more of the same; I bet it wouldn't take much effort to get them what they need to offer OpenServo boards the same way.
The OpenEEG boards are bigger than ours, and sold by the pair -- my guess is that they make them by the panel, then separate them into boards. So while they sell a set of two boards for $24, we might be able to get four boards for $24. Assembled is more, but I'm sure that depends at least partly on the cost of components. In short, OpenServo boards would be much cheaper than these, I think.
I hope somebody does this, because I too lack the skills to make an OpenServo board myself, but I'd very much like to try one!
Best,
- Joe |
|
| Back to top |
|
 |
|