Trouble with servos!

I’m working on a robot that’s supposed to place dominoes in a track. As part of the design, there’s an arm that grabs and places the dominoes. The arm is parallel  to the ground when the domino is released, while it’s vertical when it grabs the next domino. To achieve this, I have a parallax high speed continuous rotation servo that rotates 90 degrees back and forth. (I’m using the parallax basic stamp Board of Education and programming with MacBS2).

The problem is that I can’t get the servo to rotate precisely the same amount both ways; it always ends up either a tad before or a tad past the starting point. Even if that tad is 0.1 degrees, each time the arms go up and back down, they are misaligned by 0.1 degrees, and after 100 dominos are placed, the arms will be misaligned by 1 degree, by which point the robot wouldn't even function correctly.

If there was some way to make the servos “return to a default position” or control them by position rather than by velocity, then I think I could make this work. If anybody has any suggestions on how to do that, please let me know! I’d also appreciate any other possible ideas/solutions to my predicament. Thanks!

Dead band and Gear lash

I am by no means an expert in servos, but I have some experience, so here is my shot:

There will always be a little gear lash, a servo with nylon gears should have less than one with metal gears.

Also note that servos have a deadband, think hysterisis, where the pulse must change beyond the dead band. A deadband of 1usec means that the pulse width must change by more than 1usec before it will change at all. So, you have to nail the spot first time.

I think you may need to go with a stepper. I’m impressed that you got within .1 degrees! Also, I don’t understand this continuous rotation servo you have, normally one that has been modified to rotate continuously no longer  knows where it is, just how fast it needs to travel.

You actually don’t need a

You actually don’t need a continously rotation servo for this purpose, but an normal one. However you can add 1 (or 2) end-switches so the basic stamp knows when to stop the servo. An other option is to mount a potentiometer to the arm and read out the value.