The RC Servo Position Accuracy and Dead Band Blues.
I've used RC servos for many robot arm projects, and they're not bad if your willing to tolerate a few millimeters positioning error, and a bit of shaking due to dead band and backlash. For a recent project I've been rebuilding my two servo scara robot arm described here:
http://forums.parallax.com/showthread.php/151826-Scara-robot-using-servos-and-hardware-store-components
With ideas from the TRS bot described here: http://makezine.com/projects/trs-drawbot/
I really like how they used a clipboard as a base and work surface, because once you calibrate the arm to the surface you have a lot of repeatability. Plus the clip can act as a hold down to keep the work piece from moving. They also use batteries as a counterweight which helps reduce arm flex when extended, although it increases rotational inertial. The use of supports on both sides of the servos eliminated the need for brackets, and increased rigidity. The cable clips also work great as a pen holder. All to the good.
However, all these improvements have unveiled the inherent limitations of RC servos. The work area for this robot is small, about 120 mm by 150 mm, so every little bit of error is really noticeable. Straight lines are a bit wibbly-wobbly, and the images drawn by a robot are warped due to uneven servo positioning. Careful servo calibration is for naught because the errors are usually smaller than the amount of slop from dead band and backlash. Plus the non-linearity of pots means the calibration is different for different angles.
What I'd like to do is build a V3.0 of my scara arm that is accurate to within a mm or two and highly repeatable. But achieving this will require something better than analog RC servos. But what? Some candidates:
Digital RC servos - they're supposed to have less dead band than analog servos. It might be enough to counteract its effect, but I imagine feedback pots will still be nonlinear.
RC servos with openServo and openEncoder electronics - I've seen demos online using these which are really sweet. But the control electronics are hard to come by.
Dynamixel servos - these are supposed to have ten bit position encoders, but they're an unknown quantity to me. They're $40 a piece which means if I buy them and they don't do what I want it will be an expensive lesson. I think these guys are also higher voltage than RC servos which means a power supply redo.
Stepper motors - I know these will work, but steppers are a pain. Most small steppers only have a 7 degree step size, so I'll need a gear train to increase resolution and torque. But that introduces backlash. Moreover I haven't seen any off the shelf gear trains for steppers. Over the weekend I tried hooking a stepper up to Lego gears, but that was an exercise in frustration.
Anything I'm missing?
http://forums.parallax.com/showthread.php/151826-Scara-robot-using-servos-and-hardware-store-components
With ideas from the TRS bot described here: http://makezine.com/projects/trs-drawbot/
I really like how they used a clipboard as a base and work surface, because once you calibrate the arm to the surface you have a lot of repeatability. Plus the clip can act as a hold down to keep the work piece from moving. They also use batteries as a counterweight which helps reduce arm flex when extended, although it increases rotational inertial. The use of supports on both sides of the servos eliminated the need for brackets, and increased rigidity. The cable clips also work great as a pen holder. All to the good.
However, all these improvements have unveiled the inherent limitations of RC servos. The work area for this robot is small, about 120 mm by 150 mm, so every little bit of error is really noticeable. Straight lines are a bit wibbly-wobbly, and the images drawn by a robot are warped due to uneven servo positioning. Careful servo calibration is for naught because the errors are usually smaller than the amount of slop from dead band and backlash. Plus the non-linearity of pots means the calibration is different for different angles.
What I'd like to do is build a V3.0 of my scara arm that is accurate to within a mm or two and highly repeatable. But achieving this will require something better than analog RC servos. But what? Some candidates:
Digital RC servos - they're supposed to have less dead band than analog servos. It might be enough to counteract its effect, but I imagine feedback pots will still be nonlinear.
RC servos with openServo and openEncoder electronics - I've seen demos online using these which are really sweet. But the control electronics are hard to come by.
Dynamixel servos - these are supposed to have ten bit position encoders, but they're an unknown quantity to me. They're $40 a piece which means if I buy them and they don't do what I want it will be an expensive lesson. I think these guys are also higher voltage than RC servos which means a power supply redo.
Stepper motors - I know these will work, but steppers are a pain. Most small steppers only have a 7 degree step size, so I'll need a gear train to increase resolution and torque. But that introduces backlash. Moreover I haven't seen any off the shelf gear trains for steppers. Over the weekend I tried hooking a stepper up to Lego gears, but that was an exercise in frustration.
Anything I'm missing?
Comments
A year or so ago, I did a project with a Hitec Digital Servo. I bought the Programmer for it that allowed for some pretty good adjustments. I was interested in the Deadband in particular.
https://www.servocity.com/html/hpp-21_servo_programmer.html#.VMZdDv54p4c
It's worked well as I was trying to get rid of some "creeping" at center.
Jim
I'm sure better servos can lead to better results. Of course, the mechanical linkage is critical. Any slop/backlash undoes servo improvements. You'll need really stiff links and bearings in your arm, plus a very stiff pen mount and pen. Check this guy's drawbot, his pink pen wobbles all over the place. Yet again, stippling saves the day: https://www.youtube.com/watch?v=Y0PaxYGbgd8
Another option is to manage expectations and embrace curved letters, as done on my simple BS2 printer below.
Ready as I'll ever be. My kids school was preemptively canceled, my employer told everyone to work from home tomorrow, and my dentist canceled.
I heard that digital servos could be programmed to improve their performance, so that's something to consider.
Mine can already draw patterns that are as good as the TRS stippling effect. The wiggles actually enhance them because every drawing is like a snowflake. My bot uses a microcontroller with a gcode parser rather than an audio WAV file. I did a stippled "Hello World" that was pretty freaky and my tool chain is awkwardly long. I use MS paint to create large bold letters, I loaded the JPG into Stipple Gen 2 to create a TSP path in SVG format, I use my own SVG to Gcode converter, and finally downloaded it onto my drawbot.
It works, but I want to make something better.
I grew up in Indiana and they would cancel some unimportant things like school and some stores would close, but basketball? Oh no! They sent us home from school at lunch time one day because of a snow storm. 6 PM that night night, with 18 inches of snow on the ground, the gymnasium was packed for a basketball game. Hoosier Hysteria indeed! :-)
@
I haven't tried Dynamixel but if I were looking for repeatability I'd go with Dynamixel on the gripper and wrist, the rest wouldn't be servo motors. The arm's structure should support the weight, not the motors. Less amps, stronger, more motor possibilities, and should be a lot more accurate too.
This young one has spiwit! Would love to see some pics & video, Boss!
You ain't just whistlin' Dixie, pal!
Have you looked at toothed belts and gears for this? I have come across some optical spectrometers that used stepper motors, toothed belts, and gears to position phototubes on the desired secondary slits. Reasonably good accuracy, good repeatability, and very little backlash or play.
@kwinn, I've thought about steppers, but they seem to come in two types. Pancake with two or three mm shafts, and big ones with 5 mm shafts. I haven't seen much in the way of gears or belts for the former which are more in the size I was thinking. For the latter I've seen pulleys and belts but they're bigger than I had in mind.
I tried interfacing some Lego gears to a pancake stepper but coupling the shafts proved unworkable. I was thinking of buying some surplus gears to see if I could find something that would work.
A DC motor with encoder would work, but that's a bit more complex. Some of the old dot matrix printers had small belts and stepper motors that might work. There are also printers like the Okidata 180 series that use a system somewhat like rack and pinion steering with the motor on the print head carriage. Another technique used in spectroscopy was to spring load the carriage so it was always pressed against one side of a gear tooth.
I've noticed that a lot of these cable-driven drawbots use string with beads molded on, as seen on vertical drapery cords. Watch at ~1:20. Also notice the high-tech "tensioner": a retail bag of screws.
This polar/radial printer with curved "rasters" is also pretty rad.
-Phil
The two dollar Ebay steppers? You could have saved time and just burned your $4.
Seriously, I've given up on those other than demonstrating that they turn. Any load and they skip and start stripping. Very tiny gears inside. NEVER try to back drive them.
Phil, it's an interesting idea, but I'm not sure how to physically pull that off. The other idea I have brewing is replacing the control electronics with this: https://www.sparkfun.com/products/9014 Basically it's a DIY digital servo with open firmware. With that I might be able to reduce the dead band at the expensive of more chatter and power consumption. The downside of this board is you must feed it more than six volts.
[video=youtube_share;VfSXa97sCNQ]