2

After reading up on some questions posted here regarding servos, I decided to go with the Dynamixel AX-12A which can be found here http://www.trossenrobotics.com/dynamixel-ax-12-robot-actuator.aspx.

Will putting high loads on the servo significantly decrease its accuracy? Will the servo release the same amount of power to move "X" degrees regardless of the load it has to pull or will it compensate for the higher load and output more power?

Would the answer be different for lower performance servos like the one here http://servocity.com/html/hs-422_super_sport_.html? These servos would be handling a lower load but I'm still worried the accuracy might degrade as I put on more and more weight.

Last thing, for the second motor I listed, how would I implement a PID loop with it? Assuming I have a working encoder o

rEgonicS
  • 73
  • 1
  • 2
  • 6

2 Answers2

5

First, let's get straight that you are actually talking about small "hobby servo motors". The word "servo" has a different and general meaning having to do with a control loop method.

I didn't look at your particular hobby servo motors, but if they are like most others the unit includes a motor, position sensor, and some kind of electronics that performs servo control such that the motor is driven to a particular position. The usual means this is communicated to the electronics is by sending a pulse between 1 and 2 ms in length, with 1 ms indicating one end of travel and 2 ms the other. These pulses need to be repeated usually every 20-50 ms for smooth operation.

Due to the fact that these units perform closed loop control of the motor position, the power to the motor will be dynamically adjusted as needed to get to and hold the indicated position. The motor will automatically be driven harder when it is off position, or something is trying to force it off position. Depending on the exact servo algorithm, small deviations may not produce as much torque from the motor initially, but it may produce more and more force over time if a small position deviation persists.

The system is not about moving X degrees, but holding the motor at X degrees.

If these are typical hobby servos, you don't implement a PID loop to control them. That's what the servo controller in the unit already does. You simply send it commands what to do and it will drive the motor as necessary to follow those commands within its limits of speed and torque.

Olin Lathrop
  • 313,258
  • 36
  • 434
  • 925
  • 1
    You are fully correct, but I would like to add that there are times that adding your own PID controller is optimal. It is not needed for getting the servo to the position you want, but rather controlling the rate at which you get there. I have seen a somewhat heavy device that was rotated by a servo. Mechanically the servo moved directly to the position they wanted, but the rest of the unit kind of swayed back and forth. Implementing a PID can allow you to overcome issues like this. Although possibly even a simpler (simpler than PID) controller can do it as well. – Kellenjb Feb 24 '12 at 19:34
  • @Kellenjb: I agree, but if you're having that kind of control problems you probably have a underpowered servo unit to start with. A properly sized servo motor unit should be able to handle loads within its range without you needing to do much extra. – Olin Lathrop Feb 24 '12 at 20:04
  • It was more of an issue of the unit not being firmly connected to the servo so it was able to sway even though the servo wasn't moving. – Kellenjb Feb 24 '12 at 20:07
0

Pure mechanical inaccuracy is due to elasticity and deformation of the materials used to construct the device, and backlash in the joined moving members.

Assuming a stepper is used without position sensing and correction, there must be some backlash and play between moving components, or the friction would be so high it could not move without severe abrasion of contacting surfaces.

Bearings can be slightly compressible due to spring action of the ball/roller cage, and the rolling elements moving slightly as the bearing is compressed under load. Bearings also need a small amount of backlash or they would be so tight the rolling elements would not move without very high driving force. Sleeve bearings directly ride a hydrodynamic wedge of oil which is itself mobile, and introduces play and elasticity.

And then there is the elasticity of the design materials themselves, which may deform slightly under compression or tension, storing potential energy that is later released.

 

All of this will also affect actively driven infinite positioning servos, as all of these effects can affect the position sensing accuracy of whatever sensor is providing feedback to the actively driven infinite positioner motor.

Ideally the position sensor for an infinite servo would a separate component that can be mounted as close to the final sensed load and its first mounting pivot, rather than built directly into the servo unit.

There may be a long chain of compressible, flexing components between a combined servo motor/position sensor and the final output lever or wheel that is being moved by the servo, which will introduce positioning inaccuracy under high load, no matter how precise a combined servo motor/sensor unit is.

Dale Mahalko
  • 1,580
  • 2
  • 13
  • 16