Arduino + pololu micro serial servo controller =? smoother

Hi pololu forum,

This is my first post. I build a robot arm (4 DOF + gripper). Everything was initially and ‘well’ controled with arduino duemilanove (328) but my movements were not as smooth as i wanted.

my servos : 3 futaba s3152, 1 HD-9150MG, 1 futaba s3114

I bought the servo controller (20$) with the hope that I would be able to smooth their movements as I saw here :

http://lab.guilhermemartins.net/2009/08/21/filtering-servo-movements/

Is it possible to really explain what is in the core (internal chip) of the controller?
what are the real benefits of using the servo controller?
Would i really obtain better resolution (with absolute command position) with the servo controller?
would i really obtain smoother movements?
And why?

Thank you very much and sorry for my poor english.

Tony

Hello.

The servo controller has a microcontroller that sends the commands to the servos 50 times per second. If it changes each of those 50 pulses in a second a little bit, the servo movement will be smoother than giving it one new command every second.

The benefit of a servo controller is that it generates the command pulses for you, which can become cumbersome if you have multiple servos that you need to control while performing other tasks.

Yes, you can get better resolution with the absolute commands, because servos can generally resolve more than the 255 positions you can send with the lower-resolution commands.

By the way, the most recent servo controller we have is the Maestro, which also has acceleration settings for even smoother movements. (I couldn’t tell from your $20 comment which one you got, and your link is to an old page that uses the old servo controller.)

- Jan

Hi jan,
thank you for yourquick answer.
I wired everything (arduino duemilanove, the pololu micro serial servo controller and the 5 servos)
BUT : I did not see any improvement. The movements are still (a little bit) saccaded, it is not smoother than before.
I use position-absolute to fix their position.
What did i wrong?
thank you again,
albatros

The smoothness of the motion is set by the speed parameter. If that’s still not smooth enough, you might need a servo controller that can do acceleration or better servos. By the way, you can do some acceleration control with the controller you have by sending multiple speed commands per movement.

- Jan

Hi Jan,

Do you have a sample code that shows the acceleration tweaking with my controller (micro serial servo controller).
thank you

albatros

I don’t have a sample, but if you have basic commands working, it shouldn’t be difficult to add. Do you understand the basic concept?

- Jan

Goog morning Jan,

well, I juste received the pololu maestro micro.
Everything is wired up but there is A LOT of jittering.

Here is my setup : power :
separated for the 5 servos : 5 volts, 5 amps regulated (plugged directly to the servo controller)
arduino duemilanove
pololu maestro 6
servos : 3 futaba s3152
1 futaba s3114
1 power hd 9150-mg

I’m testing with the small application provided with the pololu controller.
I really need help to figure out what is the source of the jittering, because the movements are not fluids and/or smooths (as I want to) and one of them is jittering a lot

thank you

Hi again,

just to be sure here : the arduino is unplugged
and the red light on pololu is sometimes on with serial timeout error.

this will probably helps for the diagnostic.

thank you

Hello,

If you are getting a serial timeout error, you must have configured something on the Maestro. Can you do a reset to default settings and try moving some servos with the Control Center, telling us exactly what you are doing? You should not need to configure anything except accepting the serial configuration changes that happen the first time you try to move a servo.

-Paul

Hi paul,

Ok, I did a reset. Now, I don’t have the serial timeout error.
But there is again A LOT of jittering .

Still waiting…

Thank you

Can you try moving some servos with the Control Center, telling us exactly what you are doing?

-Paul

well, the servos are moving with the control center. I did a reset so the controller uses the defaults settings.
They move with a huge amount of jittering even with no load.
And this happens with or without acceleration and speed settings, all are at 0.
I tought it was a power problem, but my 5 amps seems to be appropriate.

You are not really giving us details about how you are moving them. Try this: with only a single servo, your power supply and USB connected, move a servo around by slowly dragging the pointer in the control center. (No arduino, no other servos.) Is it still behaving poorly?

-Paul

that’s it, that’s exactly what I’m telling about.
Nothing is wired except usb, power supply et one servo (futaba s3152-brand new)
I’m totally confused…

thank you,

Do you have another way of testing the servo & power supply, like an RC receiver? Can you post a clear picture of your setup, showing all of the connections and the power supply? A video of the “jittery” motion would also be useful if you can put one on youtube or something.

-Paul