# 2DOF arm with quick movement: Stepper, servo, or DC motor?

To make a two degree of freedom arm capable of speeds needed to play air hockey, how should the arm be controlled? I'm wondering about speed vs accuracy.

The following image is from a project involving a 2DOF drawing arm:

For this air hockey project, the general mechanics of that arm seem appropriate. it can move the "hand" around a 2D plane. I also like how both motors are at the base of the arm, instead of having the 2nd motor at the elbow (which adds weight to the arm and slows it).
However, the drawing robot is slow.

• Steppers:
I understand that in general, steppers are 'slow'.
But, steppers have accurate positioning, which is very important in a game of air hockey. I also know that the steppers can be geared-up, but then they lose torque. The steppers would need to handle the inertia of quick, back-and-forth arm movement.

• Hobby servos:
I've used small servos for other projects, but the accuracy was poor. Most don't have a way to read the angle externally, and those that do, have noisy signals. I'm not sure how strong the hobby servos are, and if they can be accurate enough for this project. I understand that using digital servos improve dead band issues.

• DC motors with external feedback:
The only other method I can think of for controlling the arm would be to use DC motors with sensors like as rotary encoders. I think I would need an absolute rotary encoder. But they seem to be around \$50-$1000, which is a bit much for a solution I'm not sure will even work out. Perhaps there are cheaper solutions to motor angle measurement. I could just use a potentiometer, but then I'm worried about noise again.

It's worth noting that I don't know of any easy or affordable way to design my own drivetrain. All I have is a drill, and I don't know how I would mount shafts/bearings and such, even if the gears themselves were affordable.
This means that if I need to gear-up or down, I don't think I can unless it's cheap and involves simple tools.

So for the arm: DC motors with external feedback, servos, steppers, something else?...
Which method would be the best in terms of speed, and which for accuracy? I'm wondering which would cost less as well, but I understand that is a grey area.

I'm leaning towards servos out of simplicity. I'm may try digital servos with ball-bearings, in the hope they that will move quick enough, but be strong enough to handle the inertia of the arm.

(Note that a 2DOF arm is desired, and not something else like a 3D-printer x-y belt system.)

• The servos you used are more general and are poorly manufactured. Try full rotation metal geared servos that come with higher speed. Oct 2, 2016 at 14:24
• You said, "I also know that the steppers can be geared-up, but then they lose torque." Usually gearing a motor increases torque and decreases speed. And a stepper motor can be quite fast. Aug 16, 2018 at 13:10
• @NomadMaker - A motor can be geared in either direction. To "gear up" means to gear for more speed. "Gearing down" means to gear for more torque. In the context of Air Hockey (sports), I'm saying steppers are "slow". Perhaps if I threw enough money at it, it would be both fast and powerful, but I was not seeing fast steppers for sub $50. I also read that the faster they are driven, the less torque they can provide. – Bort Aug 16, 2018 at 14:00 • You should put price limits in the question. Considering that air hockey tables can be extremely expensive, I wouldn't think it's out of line for this project to cost in that realm also. Aug 16, 2018 at 19:15 • @NomadMaker - The price issue is mentioned in the question. I got an air hockey table for$20 on Craigslist, some were even free.
– Bort
Aug 16, 2018 at 23:07

Servo mechanisms are not the "popular" RC-Servos (not-only). Servo is a closed-loop control, not only for motors. Even Steppers could or not be servo-motors. RC-servos are in major cases a DC brushed motor, with reduction gear and a potentiometer for position feedback, and electronic control.

This is a common RC Servo. The fact that it has no ball bearings does not directly to bad precision, there's plenty of high precision products that don't use ball bearings, they are better lubricated and more strong.

By Gophi (Own work) [GFDL (http://www.gnu.org/copyleft/fdl.html) or CC BY-SA 4.0-3.0-2.5-2.0-1.0 (http://creativecommons.org/licenses/by-sa/4.0-3.0-2.5-2.0-1.0)], via Wikimedia Commons

So you can use a DC brushed, brush-less, steeper motor, AC induction motor, and still add servo-mechanism (closed loop).

But what is common for staring designer on robotic arms, is a big interest in motor and actuators, and a low research on the mechanic itself. If the structure is much flexible, using high precision actuators would not help so much.

So you need to design the arm itself to be strong under the weight, forces, acceleration and deceleration (be it or not with ball bearing), and then with the dimensions, you can start selecting the actuators.

Rought speaking, the bigger the number of poles, the more torque the motor will have and less the speed (this is very variable). The question is, if the motor is directing driving the arm you would want high-torque and less speed. If you gearing, you can use a low pole, high-speed, medium to high torque motor, and have the gearbox match the speed and torque for your application.

• "If the structure is much flexible, using high precision actuators would not help so much." Choose your words carefully. In robotics, there are plenty of flexible mechanisms and structures driven by high quality motors (some series elastic actuators are examples). It's often hysteresis, backlash and other badly modellable non-linear friction effects that ruin precision, not simply "flexibility". Oct 6, 2016 at 22:28
• Sure, it's not my native language, but I think it's clear for the less complex option of the question. Oct 6, 2016 at 23:30

any times when people say "servo motor" they are talking about the model airplane style square black plastic box. That is not what you want here. You would be looking at the industrial type servo. These are larger sized DC motors when optical encoders on the motor shaft.

You do NOT need absolute position sensors. All you need is a quadrature sensor and you keep count of the "ticks" in each direction. At some place in th system there is a "home" switch. On power on you slowly move until the home switch is tripped then the count is reset to zero. From there you count. As long as you don't miss a coubtthe position is accurate.

Cost can be nearly zero if you salvage parts from broken ink jet printers or copy machines. They are a good source of encoders, and optical limit switches and motors and gears. Old inline skates are a good source of ball bearings. Can make arms from wood.

Path planning is th hardest part of the controller. You need to accelerate the motors and arms so that the X motor and Y motor each reach their target position and velocity at eat same time. Typically this solution is re-computed using feedback many times per second.

A good drive system if you can't use gears or timing belts is to wrap kevlar cord or steel cable around a driven drum then around a second drum and then connect the ends of the cord with a spring. As long as you keep the spring between the drums

Also for air hockey 2 DOF is not enough. You You need to control the X, Y position and also the ANGLE of the paddle. Unless you are using a disk shaped paddle like hitting a puck with a puck.

• Air hockey doesn't use the same equipment as regular hockey. The paddles are puck-shaped with little handles sticking up. This is an interesting design challenge because it's not enough to simply meet the fast-moving puck at an X, Y location; you also have to approach the puck from the correct angle in order to deflect it in the desired direction. 2 DOF is enough, but this is gonna be TOUGH. Oct 1, 2018 at 17:52

Servos don't really have the punch power I think you are looking for, you mentioned stepper motors being geared up but low torque - there are many steppers available that do exactly the opposite e.g. high RPM internally but thanks to a gear head fitted directly to the motor cylinder the actual drive shaft has a much lower RPM with high torque. You haven't mentioned if the arm is just to go from point A to point B or you want it to be fully articulated and controllable similar to the drawing arm in your diagram and you also have not mentioned your control device e.g. is it computer controlled or manual (such as a joystick). You also have not mentioned the most obvious choice for arm control which is pneumatic, have you ruled this out for a specific reason? Finally, does it have to be an arm or just a mechanism to hit the puck as you could use simple x/y axis control e.g. left/right backward/forward this is the type of mechanism you would find in a plotter printer or controlling the crane arm in those arcade machines where you have to grab the toy! a servo where X & Y meet could control the angle of the surface that hits the puck giving even more control and accuracy. If you come back to me with more specific requirements I'll try and give a more specific answer! Good luck.

• Hello and welcome to Stackexchange. As a heads up, this is a Q&A site, not a forum. Discussion is not encouraged unless it is to clarify Q&As (though it's okay in the chat rooms). I asked this question because I'm not sure about the trade off for RPM vs torque, both are important. Good point though about the path of movement. Also, I didn't mention the control being via joystick or computer because they are really the same thing. I don't see that being relevant to the choice of motor. Also note that the very last sentence of my question states that I do not want an X/Y belt system!
– Bort
Oct 7, 2016 at 19:30
• "Servos don't really have the punch power" that's not true in general at all. Servos come in various different sizes and strengths. As feedback and a closed control loop is likely necessary for the task in question, chances are the solution will effectively always be a servo motor in one way or another. Oct 8, 2016 at 17:49