Motor Sizing Process

The following sections describe how to choose a motor using speed, torque, and inertia selection criteria. The basic procedure for sizing a motor is:

1. Determine move parameters
2. Calculate load inertia (or mass)
3. Calculate peak and rms torque (or force) requirements

While the steps for motor sizing remain constant, different mechanical systems require different formulas to calculate the first three steps. The selection of the motor is determined by the general characteristics of the motor desired and the ability of the motor to meet the calculated requirements.

# First Step

The first step in selecting a motor is to determine its operating conditions and the maximum conditions that the motor will see.

Robot/Actuated Mass
We need to know the mass of the load/rover in order to determine the torque for motor selection. Getting a mass estimate (or even better an actual mass) is critical for choosing a motor. If you are designing based on a mass estimate you should apply a good margin for mass bloating. You can look at the Torque Constant from the motor data sheet to figure out how much torque you will go per amp.

Speed
After determining how much force/torque you need, the next step is to determine the speed that the wheel needs to turn. At first you should determine the desired speed of the wheel (ie final output), and then you can start choosing motors and gearing afterwards.

Form Factor
After you know the basic performance characteristics of the motor you need, the next step is to make sure the motor stack (encoder + break + motor + gearing) fit in your robot and can be packaged cleanly in your robot.

Voltage
What operating voltage can you use for powering the motor. Typically the higher the voltage the higher the speed of the motor. You can look at the Voltage Constant from the motor data sheet to figure out how fast you will go per volt.

Temperature
This is often not an issue, but if your motor is being enclosed then you want to make sure it does not overheat. You also need to worry about the temperature range for gear box lubrication (see below for more information).

Cost
Cost. Need I say more.
Actually I will say more. It can sometimes be tempting to build gear boxes from scratch since it is cheaper. However if you take the time to design, assemble, and test the new gear it is often cheaper to just purchase the gear box. You also get added reliability when you purchase a gearbox from a reputable company.

Precision and Accuracy
How much slop can you afford in your gearing? Often in wheel motors you can handle a little less precision and accuracy. However in a robotic arm or instrument you often need low backlash systems that are precise and accurate.

Wheel Diameter
This last one is important for determining the required torque for a drive motor. We will see more about this in the next section. Remember that the larger the wheel the more you will travel in each wheel rotation.

# Determine Torque Required

In general it is easiest to determine the output torque required and work backwards to find your motor and gearing. I am ignoring inertia which might help limit torque required in some cases. It is good to ignore inertia (in many cases) to be conservative. In just about all cases you should add a factor of safety above and beyond what you compute.

To determine the required torque for your robot there are several schools of thought. The first is “Red’s rule” that says that each wheels rim pull (how much the wheel can pull) should be enough to pull the entire robot. While this has the potential of letting a robot operate if some actuators fail (or are slipping) it also might have the ability to rip the robot apart if each wheel is pulling in a different direction. The other problem with this approach is that even if your motors could exert that much torque there if often not enough friction to allow the wheels to gain traction and work.

The second approach is to design the robot with enough torque to climb a wall. This simulates climbing the most extreme slope and/or step obstacle with less possible danger to the robot and without going completely overboard and over designing the mobility system. Maybe assume numberOfWheels=numberOfWheels/2

The general case for computing torque per wheel required for a robot is:

$T=\frac{acceleration + gravity * sin(slopeAngle) * mass * wheelRadius}{numberOfWheels} * efficiency * factorOfSafety$
To get holding torque per wheel on a flat surface this simplifies to:

$T=\frac{mass * wheelRadius}{numberOfWheels} * efficiency * factorOfSafety$
If you are following Red’s rule then you would not divide by the number of wheels.

Another aspect is not just climbing a slope, but driving over a step obstacle. To compute that you can conservatively simplify the problem by solving for the moment where the obstacle intersects the wheel of the robot. If you want to simulate climbing a wall you can set the obstacle interception to the wheel radius.

$T=\frac{mass * wheelObstacleInterception}{numberOfWheels} * efficiency * factorOfSafety$
You need to choose if you want to use the slope method or the step obstacle method based on your system. For a field robot I would look at slope and holding torque on flat surface. For an indoor robot you might be able to consider smaller obstacles and use the wheel intercept thing above.

# Torque Speed Curves (and Power)

Once you know the torque that is required you can start looking at the torque speed curves that are in the motors data sheet. In order to choose a motor and a corresponding gearbox you can start to build a matrix of the different options in order to meet the required torque and speeds. It is a good idea to generate torque speed curves for each of the final options.

To generate the new/final torque speed curves use $FinalTorque= torqueMotor * gearRatio * gearEfficiency$

Each gear type has a different efficiency that can change with speed.

To determine motor power (since some motor controllers are rated in output power) you find the point on the torque speed curve that you are operating at and that is your power point. So $Power = Torque * Speed$.