Finally started trying to get smart about this motor selection thing.
How do I calculate the strength motor I need, for example:
Let's say I have a 50 lbs robot, including motors, chasis - everything.
I use fish scales to discover that it takes 25 lbs of force to move the
robot on 4 wheels, 6 inch diameter wheels, on a smooth, level surface.
Does that mean my motors need to generate a total of 25*16 ounce-inches of
torque, which means I need to divide by the radius of the wheel to get 25 *
16 / 3 ounce-inches torque on the motor shaft ? ( 133.33 oz-in )
Or should it be the other way around: multiuply by the wheel radius to get
3*25*16 ounce-inches on the motor shaft?
You need to take the force times the moment arm. 25 lb * 3" radius
wheels = 75 lb-in. = 1200 oz-in. And if you want this rig to go up even
a slight incline, double or triple it.
BTW, 130 oz-in = 8 lb-in, means you could probably about move a 16 lb
chassis with tiny 1" radius wheels, given your 50% force-number.
What a coincidence. Couple days ago I bought the "Robot Builder's
Sourcebook" (great book Gordon!) from Gordon McComb and there is a small
section that explains how to estimate it. I guess you can peek a few pages
on google books, or buy it if you are seriously into robotics.
"Estimate" is a good word.
In reality, the equations are a bit more complex if they must take into
account torque to start a static object moving, or torque for a certain
incline. However, this does tend to be the stuff of general engineering
Pete Miles' book on combat robots is also good in this area, as is the
Robot DNA Drive Trains book from Dennis and Mikey.
Actually I *do* have Gordon's book Robot Builder's Sourcebook! I knew I had
seen something like that somewhere! Yep - I am seriously into robotics, but
this is the first one I have ever built totally from scratch -- all of the
others have been at least 85% from a kit.
I found those torque pages today even before I read this post, and used a
cloth tape measure instead of string to wrap around the wheel of a dolly
loaded down with aluminum parts - way more than my bot will be using. Then I
dug out an old fishing scale and I was shocked to discover that it only took
about 4 lbs of force to move the dolly loaded with over 48.5 lbs of cargo,
not counting the heavy dolly itself, which rides on 3" wheels. I added a lb
to compensate for inaccuracy of the scales, based on weighing some dumbell
plates on it.
So it sounds like my motors need to have about 3 * 4 lbs-inch of force,
which multiplies out to 3 * 4 * 12 oz-in = 144 oz-in, correct ? ( for an
even, flat surface, that is ). Since I will be using 2 motors, if each has
this much torque I should OK, right ? ( assuming no inclined travel, and
that I continue to use 3" wheels on the motors ... )
P.S. That cloth tape measure came with a car rack I bought and has come in a
*lot* more handy than I ever thought it would in my shop!
If you look in a physics textbook, you'll see that rolling friction is
much less than the weight of the vehicle .... IIRC, generally 0.1-0.15
* weight [???]. Eg, a person can push a car weighing 2000-3000 lb, but
cannot lift it.
Also, you cannot push the car up even a slight grade. Takes much more
force, so it you slice the power of your robot motors too thinly, it
won't go. I should review my physics-101, but IIRC, vector analysis
[essentially simple geometry] applies here. If you try and push an
object up a 45-deg incline, it's similar to lifting sin(45-deg) *
weight = 0.707 * weight. That's a lot. For a 30-deg incline, it's 0.5 *
weight. Etc. Plus add in the frictional component.
I remember in one of the robotics class I took, we were deriving the
formulas for simulating a given robotic arm on simulink. Even though it was
an engineering class, we only went up to a certain point. For example we
derived inertial formulas for the links assuming they were cilinders, and
not dynamic objects which its own inertia depends on the inertial of
subsequent links. It gets very hairy very fast.
BTW, are you attending the SDRS meeting this upcoming friday?
If you can gear the drive train however you like, and you use nice
current-controlling motor drivers, then it is your power and speed
requirements that determine how big a motor you will need.
- Calculate how much you want to be able to push, in Newtons. (The weight of
one Kg is about 10 N).
- Calculate how fast you want the robot to go, in m/s.
- Multiply to find the required power.
- Add, say, 25% just to make up for mechanical losses.
- gear the drive train to provide its maximum power at the speed you want.
If you have multiple scenarios you need to support, each with different
pushing forces and different speeds, use the maximum force across all
scenarios, and the maximum speed across all scenarios.
- For example, to get 1Kg up a 1m, 45 degree hill in 1s takes 7N of force at
a speed of 1.44 m/s.
- Applying a 10 Kg push through a distance of 1 m in 10 seconds is 100N at
- If you want to do both, the required power is 100N * 1.44m/s = 144W.
- Adding 25% for losses means you need about a 180W motor. That's roughly
- The motor would be geared to deliver its maximum power when the robot is
going 1.44 m/s.
Note that none of the two supported scenarios will require 180W of power
from the battery. In fact, they both require only 10W+losses. Such a large
motor is only required because power=current*RPM, and the current is
electronically limited to a constant value, so when the motor turns at only
x% of its most powerful speed, it only gets x% of the motor's maximum power.
On the up-side, if your electronics can deliver 180W, you'll be able to push
that 10Kg at 1.44 m/s instead of just 0.1.
Close enough. It's actually 9.8 something, the gravitational attraction on 1
kg at standard sea level.
Yup. This is definitely the place to start.
That can't be right. That defines a new "requirement", not needed, and
likely well out of spec for the application.
What are ya? selling motors?
Yup; it failed even the simplest of sanity checks. The problem is the
falsely generated "requirement", not anything else. Power is power. Power
out is power in times (non-dimensional) efficiency.
Just check the power required for each scenario. Efficiency will likely be
in the range of 40% to 80%; increase the required power accordingly. Select
a motor based on the highest single power requirement. Tack on 20% to 30%
for uncertainty. This will get you close even without a datasheet. If you
have a datasheet, so much the better. Make sure you can gear it to provide
the required torques at the specified speeds; repeat until you find a
combination that works.
Here are some simple relationships. For an ideal electric motor:
Torque is proportional to current.
Speed is proportional to voltage.
Power is proportional to speed times torque.
Real motors are not ideal, and have losses, some constant, some linear with
speed, and some non-linear. Sum it up as an estimated efficiency curve. It's
not rocket science.
It derives from having to satisfy all scenarios with one gear train.
Unfortunately, that doesn't work when your gear ratio is fixed. If your
maximum power output happens at speed S, then when you move at only a
fraction of S, you can only get that fraction of your maximum power, because
the maximum torque is constant and power=torque*RPM.
1/4 hp? ;-) I'm an easy sell when it comes to more is better, but that's
more than just a little over the top.
Torque at speed would seem to be your selection criteria, then. It's not
enough to work from hp ratings in that case. You need to know more about the
proposed motor, not guess larger and invent new requirements. Fudging
initially small requirements into lifting 10 kg straight up at 1.5 m/s is
And the robot books on the market are not helping. As far as I can tell,
Mobile Robots, Robot Drive Trains, and Robot Bonanza don't really address
the problem of motor selection. They talk around it. They talk about
how they work, how to read motor specs, what power is required, etc. but not
how to select a motor from the specs given by resellers. The min specs
are no load RPM, and the RPM at some specified torque. C&H Sales has
good selections with this information.
Except for climbing inclines no one seems to give a clear method for
determining how much torque a motor needs to meet a performance requirement.
To be specific, say I'm considering entering a robot
in the Trinity firefighting competition. It weighs 10 pounds, uses two PMDC
motors in a differential steering arrangement. I can use anywhere from
three to five inch diameter wheels. I gauge from past contest tapes that
a fast robot goes 2 feet/sec, so I want to go 50% faster. I realize that I
this all the time because of restrictive hallway lengths. How fast can I
to speed ? How much torque will it take? How do I pick a motor from those
available on the surplus market ? Basically one needs an RPM and torque
spec derived from the performance requirements.
One wants a method for selecting motors. It's a little involved for going
here but the basic method is:
1. Pick an initial wheel diameter.
2. From the desired cruising speed, you have an approximation
for the max motor RPMs. Approximate because it takes time to
accelerate and so the final speed needs to be somewhat faster than
the average speed to make up for the acceleration period.
3. Pick a distance for acceleration. Some simple kinematic equations
will give the peak speed in terms of the acceleration distance and the
desired average speed. This can be used to find the max RPM needed.
4. The kinematic equation, V^2 = 2aS, can be used to find the acceleration
5. Put the acceleration, robot weight and unit conversion factors into
Newton's second law. This gives the accelerating force needed.
6. Multiply the force by the wheel diameter (watching units again) to
get the needed motor torque.
7. Look at some surplus motors. Nothing matches what you want.
One can trade wheel diameter to change the RPM and torque requirements
to find an appropriate RPM. Now find a motor with the minimum amount
of torque needed (converted for the new wheel diameter).
8. Remember there are two motors, so they can share the torque. Always
add more for unforseen circumstances - more robot weight, bumps, whatever.
9. One complication. If you choose to accelerate too fast, the wheels may
slip. Aaaagh - have to do some friction calculations. You can measure the
coefficient of static friction by locking the robot wheels, putting it on an
surface and tilt it until it begins to slide. The tangent of the angle is
the coefficient of static friction. The max force before slipping is equal
the coefficient times the robot weight.
Had to omit some details but that's the basic procedure for deriving motor
specs on a level playing field.
Suggestions, comments, and corrections are appreciated.
Shouldn't that be wheel radius? (I've never tried to do any calculations
like this so I'm just asking questions and thinking out loud).
You might have to factor in energy loss to bearings and energy loss for the
wheel depending on the wheel and the surface you are riding on.
And what about the power needed to accelerate the wheel itself? Depending
on the size and weight of the wheel, it seems to me that might be important
to factor in. You can't just count it as part of the total weight you are
trying to accelerate. I think you have to count it's mass twice - once for
the power needed to create the angular acceleration to get it spinning, and
a second time for the power needed to move it forward.
I suspect in practice you will never get accurate enough data about the
motors and the rest of your system to correctly calculate the performance
before hand. The calculations will probably only verify that you are in
the correct ballpark.
I think for example the max RPMs quoted are what you get with nothing
attached to the motor. Driving a robot, the max RPM will always be lower.
I don't know by how much.
And torque ratings I think are normally stall torque (how much it puts out
right before stopping). The faster it spins, the less torque it has. At
maximum speed (with nothing attached to the motor), it's torque I think is
So, to do the type of calculations I think you are trying to do (max speed
of the robot and time or distance to accelerate to some speed), you need
accurate torque vs speed curves for the motors. Maybe the shape of these
curves are typical enough for most DC motors that you can estimate them
from normal RPM and torque specs but I think the calculations you are
trying to do are a lot more complex than what you are making out above
since the torque will not be constant.
Either one as long as the units and conversion constants are managed.
I like to use diameter since its easier to measure accurately and wheels
are usually specified by diameter. Torque is force times moment arm
and that would be radius or diameter/2. I was trying to show the general
procedure and the dependence on variables, in this case wheel size.
That's all accounted for in the motor output specs.
True, but in all my robots, and all the hobby robots I've seen, the
moment of inertia of the wheel is small and well within all the other errors
Besides, after doing the calculations I always overspecify by 50 to 100 %
In my experience this works. The motor RPMs are easy to verify, the
torque is harder but the numbers given by the manufacturers are quite good
and although the resellers only give a handful of specs, those that do have
I mentioned that. You are referring to the no load RPM Recall I said
"The min specs needed are no load RPM, and the RPM at some specified
Those are enough to find any other pair of (RPM, torque) points.
Right. Stall torque is not usually given. Again, on wants an operating
the one usually given is at max efficiency, which is very roughly at about
80% of the no load RPM and 20% of the stall torque.
That's taken into account. I didn't post the equations. If you want to
thing similar look in the books I quoted, especially Mobil Robots. I think
don't go far enough in making clear how to pick surplus motors from
Polytechforum.com is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here.
All logos and trade names are the property of their respective owners.