Notifications
Clear all

[Solved] Servo shakes under low load, but stable under higher load, why?

22 Posts
5 Users
2 Reactions
357 Views
TFMcCarthy
(@tfmccarthy)
Member
Joined: 2 months ago
Posts: 127
 

@davee 

Yes, this is how I thought servos behave. I asked the question because somehow, I had the idea that there was some sort of "energy efficient" servo that most of the time used no power but for short periods would deliver variable torque at constant power.

But that must have been a bad meds day. Forget I said that.

So, we have variable current delivering variable torque at constant voltage.

The idea is a response to the question, "How to save Krooger the prospect of a costly purchase of 12 servos at $75 ea.?"

The empirical evidence is that at given load at steady state there are oscillations and high current measurement.

The article identifies this as "If the system is unstable or if it shows oscillation or overshoot..."

So I had an idea for a servo test to see if it had a current spike under load. I'm just not sure if it's practical.


   
ReplyQuote
(@davee)
Member
Joined: 3 years ago
Posts: 1851
 

Hi @tfmccarthy,

  I certainly do not know the servo market, so by all means, try to prove me wrong. I offer ideas and opinions, in the aim of encouraging thoughts and research.

So far as I can imagine, servos used to hold bent 'knee' angles (of the type I saw in the quadruped photo) could only approach zero power if they have some kind of braking mechanism to maintain the position. Humans tend to stand still with their knee joints at near to 180 degrees, because in that position most of the gravitational force is essentially bones pressing on each other, and the muscles are only required to provide limited stabilising forces. Try standing in a 'crouching' position, with your knee joint at say 90 degrees, and I think you will soon feel how much energy is required to hold that position, even though no effective 'work' is being performed!

--------------

When you say "So, we have variable current delivering variable torque at constant voltage.", then by 'constant voltage', I assume you mean that the control signal from the ESP32 is not changing ... as would be expected if the quadruped was being commanded to stand in a fixed position, similar to the previous photo.

Then, as you imply, if an external force is applied to the servo output, which would mean the shaft would rotate if the servo does not supply a matching opposing force, then clearly the current through the motor must increase to supply that extra opposing force.

The same principle would apply to the crouching human, if they were handed a large weight to hold.

--------------

Whilst I think the control loop oscillation is a highly plausible explanation, I would point out that it has not been 100% proven to be the cause, so to some extent, any discussion on replacing or upgrading the servo is speculative. I would agree that the possibility that the ESP32 was mis-driving the servo, or that there is a hidden power glitch, seems less likely, but has not been totally eliminated.

--------------

$75 per servo does not sound a pleasant prospect ... as I say, I don't know the servo market, but that sounds very expensive. Perhaps some market research would be beneficial? Technology market prices are always on the 'wild' side, in that they are often based more on what the market will bear, rather than the production costs, plus development costs can be huge, which can have a massive effect on items with a limited production volume. Of course, some rather exotic technology is now available very cheaply, because it has found a huge market. Perhaps the price of these servos is driven by limited market size, or something similar?

Whilst I can understand the pressures of producing very lightweight servos for aircraft applications, this seems to result in the characteristics of the control loop are predetermined, and can't be readily changed. I wonder if there are alternatives that allow some form of 'tuning'?

Another approach might be based on 'surgically' upgrading the cheap servos. I have no idea how practical this would be, and clearly it would require considerable skill and expertise. Assuming the motor and position sensor parts are 'good enough' for the job, is it possible to modify or replace the electronics to produce a servo that can be tuned for the task?  I only mention it as a thought, and certainly not a proposal or recommendation.

However, the suggestion that a servo burnt out is a concern. It might have been due to a manufacturing fault, or a poor electronic design, or alternatively it might suggest the motors are not powerful enough for the task. Again, an area that would need further investigation, before considering the merits of modifying them. 

----------

If servo burn out due to prolonged overcurrent was the only concern, then some form of external current trip could be considered, that simply removed the power after a second or so. However, this would not address the 'oscillations'.

--------------

Just a few random thoughts. Please take them with as many pinches of salt as you feel they deserve.

Best wishes, Dave


   
ReplyQuote
TFMcCarthy
(@tfmccarthy)
Member
Joined: 2 months ago
Posts: 127
 

@davee 

Posted by: @davee

When you say "So, we have variable current delivering variable torque at constant voltage.", then by 'constant voltage', I assume you mean that the control signal from the ESP32 is not changing ... as would be expected if the quadruped was being commanded to stand in a fixed position, similar to the previous photo.

Yes. For posture P0, (sitting) we should have (I0, V0) at steady state. Posture P1 (standing) should have (I1, V1) at steady state. We don't achieve steady state for P1. The only measurement we have is a sample for I1 and I've assumed it oscillates due to the shaking symptom. (As far as I know, it's not being directed to shake.)

Posted by: @davee

Whilst I think the control loop oscillation is a highly plausible explanation, I would point out that it has not been 100% proven to be the cause, so to some extent, any discussion on replacing or upgrading the servo is speculative. I would agree that the possibility that the ESP32 was mis-driving the servo, or that there is a hidden power glitch, seems less likely, but has not been totally eliminated

Agree. That's part of why I wanted the table test (via a servo tester). Does the servo vibrate using just an independent signal and a battery? There's another angle to consider, concerning balance. I have a Petoi BittleX quadruped and you have to carefully calibrate the bot at a known posture in order for other postures to be balanced and movements to be fluid. There's a center of mass issue that changes as you change the bot.

But in general, we don't know the cause of the vibration. We do know that the servos die when the horn is depressed. That ain't good, but a different issue.

Posted by: @davee

the characteristics of the control loop are predetermined, and can't be readily changed. I wonder if there are alternatives that allow some form of 'tuning'?

The closest I have heard of are servos with a feedback signal. I've never used one

Posted by: @davee

is it possible to modify or replace the electronics to produce a servo that can be tuned for the task?  I only mention it as a thought, and certainly not a proposal or recommendation.

I was surprised to discover you can service the 9g servos. They sell the parts and you can replace them. So, yeah, you could replace the controller board. If you do, don't look for me. I'll be elsewhere.


   
ReplyQuote
Krooger
(@krooger)
Member
Joined: 1 month ago
Posts: 15
Topic starter  

I appreciate the interest in my current problem haha.

 

I did find myself an servo tester and even with the simple analog signal the servos were still shaking when given a small load then stabilized after a greater load was placed on them. So I think I'd rule out the micro controller, and I'm going to blame the servo internals.

But good points above, I never really considered that the control system would be built specific to an application and might falter in other scenarios. They are marketed for RC Traxxas HSP Car Boat Helicopter Robot Airplane but honestly who knows with Chinese products.

I bit the bullet and ordered in a full set of new servos, but I definitely don't pay $75 and that's probably why I run the risk of buying poor performing servos. I pay like $20 CAD each. Still adds up but remains affordable for a hobby.

They should come in tonight and fingers crossed the rebuild pays off.


   
DaveE reacted
ReplyQuote
Krooger
(@krooger)
Member
Joined: 1 month ago
Posts: 15
Topic starter  

Case Closed

So After a full servo replacement everything is working great:

Verdict, I would not recommend buying GXservo Brand servos, not sure the exact reason they didn't work out, but that was the problem.

 

I replace with Miuzei brand servos for the same price, I wouldn't necessarily recommend them yet, but they are certainly working so far. We'll see how they perform as I test and develop more.

 

Thanks for everyone's input.


   
DaveE reacted
ReplyQuote
(@davee)
Member
Joined: 3 years ago
Posts: 1851
 

Hi @krooger

  Good to hear you made some progress ... hope the improved luck continues.

  I had a quick look for some more practical information at modifying these small servos ... so far the only reference I found is:

https://www.instructables.com/Using-SG90-or-MG90-Servo-Feedback-Modification-for/

It starts in the right direction, but only scratches the surface of the subject. Of course, there isn't much space in the servo, and just adding 1 wire is probably quite tricky, so the limited scope is understandable. I am not suggesting you follow it up, but you might find it an interesting 5-minute read.

Good luck with your project and best wishes, Dave


   
ReplyQuote
TFMcCarthy
(@tfmccarthy)
Member
Joined: 2 months ago
Posts: 127
 

@krooger 

This thing intimidates me a little.


   
ReplyQuote
Page 2 / 2