Micro maestro and jitter

Hello all,
I recently purchased two micro servos https://www.pololu.com/catalog/product/1051 that I have attached to a Micro Maestro 6-Channel controller. I am using the servos with those brackets: https://www.sparkfun.com/products/10335 that I have also attached a usb webcam to. The power is provided to the micro maestro by this battery (https://www.pololu.com/catalog/product/2223, that is dedicated to it.

Unfortunately I am getting jitter, usually when the top servo (i.e. the one that rotates around the horizontal) is somewhat loaded. Very often though jitter happens at positions of low load. The servo that rotates around the vertical also has its issues and even if its it is not under torque load (maybe some bending due to the bracket leaning backwards) it also jitters often, but not as much.

Because it seems that jittering of the top servo affects the bottom one, I would normally suspect the power source, but I think the batteries can provide the current necessary to drive the servos. Am I right?

I have tried to change positions and the Pulse period, but this don’t seem to have any effect. I was expecting that those servos with the maestro controller would not have any jitter, as being so advertised.

Any help or advice is much appreciated!

Hello,

By jitter do you mean a buzzing sound and vibration? That is typical of servos under load, and it is probably not related to the Maestro or your power supply. To verify that, you can disconnect one of the servos from all the mechanical parts but leave it connected to the Maestro - I expect it to stop buzzing no matter what the other servo is doing. Anyway, to reduce the buzzing you either need to reduce the torques on the servos (by lightening the load or adding counterweights) or get stronger/better servos. If you take some of these steps, you might even be able to turn off the servos (position 0) when they are not moving, which should stop the buzzing completely.

Please note that torques that are not aligned with the axis of rotation can also negatively affect your servos, by flexing the axles and causing the gears to mesh poorly. Again, stronger/better servos will make that less of an issue.

-Paul

Paul,
thank you very much for your thorough response. I will try to change the kinematic setup and I will try to implement a servo turn off functionallity in my code. Do you think if I use analog servos will make any difference?

Best,
troni

Hello,

Different servos behave differently, and it is hard to be sure which will be best in your setup without trying them. Digital servos are generally more capable of holding an accurate angle under load, but I do not know whether that would result in more or less vibration for you.

-Paul

Hello again and thank you for the continuing support!

I tried to set the servos to 0 (and thus turn them off), but this doesn’t seem to work. I am using a function like the following to set the target:

int servoController::setTarget(unsigned char channel, unsigned short target) {
  if ((target/4<lowerLimit || target/4>upperLimit) && target!=0) {
    std::cout << "Out of limit error\n";
    return -1;
  }

  std::cout << "Seting target of channel: " << (int) channel << ", to:" << target/4 << '\n';
  unsigned char command[] = {0x84, channel, target & 0x7F, target >> 7 & 0x7F};
  if (write(fd, command, sizeof(command)) == -1) {
        std::cout << "Error writing\n";
    return -1;
  }
  return 0;
}

and I call it like:

void server::handleTimeOut() {
    if (!servoCntrl.isMoving()) {
        servoCntrl.setTarget(0, 0);
        servoCntrl.setTarget(1, 0);
    }

I am using an event loop and I call the last function every couple of seconds (just for testing the turn off functionallity). Doing that doesn’t stop the jitter. Does this mean that the servos are still ON? . Please excuse the relativity of the following statement but I did those tests with the servos under very low load. Also putting the servo at positions that increase the load doesn’t necessarily mean that the jitter will remain.

Best,
Troni

Hello,

Again, by “jitter” do you mean a buzzing sound and vibration?

If you are wondering whether setting the servos to zero turns them off, I recommend that you just do your tests within the control center, and leave your own code out of the setup for now. Does turning the servos off in the control center stop the “jitter”?

-Paul