We have seen many makers face difficulties in choosing a right motor for their mobile robots as well as automation projects. Many of them are not from the mechanical engineering background hence the calculation of torque, gear ratio and the motor power appear so unfamiliar to them.
This article summarized the 6 most fundamental knowledge about DC motors that hopefully would be able to help the newbies to select a right one for their projects.
It is good to know that you have an option to use the AC motor if it fits your application.
Conclusion: If you are building a project that requires battery and/ or mobile operation (such as a mobile robot or drone), then DC motor is the best option.
There is numerous type of DC motor in the market but the most commonly used are brush motor, stepper motor and servo motor. Let’s have a quick glance at the major differences of these DC motors from the table below.
Character: The most common and easiest to use. It will rotate continuously if power is supplied.
Control: There are 2 wires from the motor, connect one wire to the “+” terminal of the battery and another wire to the “-” terminal. Reverse the polarity will cause the motor to rotate in the opposite direction. If you wish to control the motor’s speed and direction in a more efficient way, you need an external motor driver.
Application: For general application such as a mobile robot where you need to move forward and backward or pulling a string to a certain limit. The accuracy of the rotation is not critical.
Example: Robot vacuum cleaner, Car’s power window, power wiper
Character: Stepper motor is a motor that moves in discrete steps, one step at a time.
Control: There are 2 types: bipolar (4 wires) and unipolar (6 wires). You are unable to connect these wires directly to a battery, instead, you will need a stepper driver to drive the stepper motor.
Application: It can achieve very precise positioning. For this reason, stepper motors are recommended for precision motion control applications such as 3D printer machine.
Example: 3D printer
Character: By definition, a servo motor is a motor with closed loop position/speed control.
Control: Usually, there will be more than 2 wires from the servo motor. The main 2 wires (usually thicker) are to provide the power source and the remaining wires are to provide the position signal to the controller.
Application: RC servo is used to control the engine throttle of a RC car. While the industrial servo is used to drive the robot arm. In both cases, real-time monitoring in position and direction of the motor rotation is critical.
Example: Industrial robot arm, Humanoid robot
Before we proceed, it is good to learn some basic knowledge about the gearhead attached to a motor.
The ordinary DC brush motors without gearhead produce very high RPM and very little torque. You can see the video below, although the motor rotates at a very high speed, it stops immediately when we try to touch it using our fingertip, means the torque is very low.
To solve the problem, we attach a gearhead at the same motor to reduce the speed of the motor and at the same time increase its torque. As you can see from the video below, the motor rotates slower and we are unable to stop it using our fingers.
How does it work? From the video above, you can see that the speed of the first gear rotates very fast and it gets slower by the gears and finally produced an output that rotate slower and produces higher torque at the same time. You can learn in details how the gear train works: https://www.wikihow.com/Determine-Gear-Ratio
Torque and RPM (revolution per minute) are the most important and the common specifications of the DC motor. We need to estimate the torque and RPM required for our application to decide which motor to use.
Torque is a measure of how much force we need to rotate an object. The common units of torque are “N.m”, “oz-in” and “kgf.cm”.
From the example above, the minimum torque required to at least hold the 5Kg’s load is
Torque = Mass of the load (in Newton) x Radius of the pulley (in meter)
= 5 x 9.81 x 0.1
= 4.905 N.m
RPM is a common unit to measure the speed of a rotating object. How many rotation it can achieve in 1 minute (60 seconds). Assuming the motor is rotating at a speed of 10RPM, means the pulley is able to rotate 10 x 2 𝝿 R = 10 x 2 𝝿 (0.1) = 6.28 meter of string in 60 seconds.
To calculate the torque and RPM required for a pulley system is straightforward, but how about a mobile robot where you have more parameters to consider?
We need to consider the number of motors we use, the motor efficiency, the size of the wheel, robot’s acceleration and the incline degree. Please refer to the equation below to calculate the motor’s torque of a mobile robot.
To make life easier, I have simplified the formula by giving some assumption where most of the mobile robot should applied:
Where you only need to key in the total mass of your robot in Kg, radius of the wheel you use at your motor in meter and the numbers of motor on your robot.
*Note: Most of the motor efficiency in the market is 65% and I assumed the maximum incline required for your robot is 20° which should be sufficient enough to move through some small bumps. If you wish to change the parameters, you can use the motor sizing tool provided by RobotShop.
The answer from the above equation will be in Newton meter (Nm), you can convert to other units using the online converter.
To calculate the RPM required by the motor, you need to apply this formula.
*Note: Distance and radius in meter (m) and time in second (s).
In engineering design, we usually apply a reasonable safety factor to compensate the unknown circumstances in the real world environment such as the friction between the wheel and the ground.
A safety factor of 1.5 means we are using a 50% larger motor than our original calculation. The larger the safety factor the safer it is for the selected motors to work for your project. However, it also means your design is not “efficient”. A bigger motor also means more expensive and higher load to your robot which will consume more energy. Imagine you are using a super huge truck just to carry a few basketballs, it doesn’t make sense at all. In short, you need to provide an optimum safety factor for your motor selection.
From my personal experience, safety factor between 1.3- 1.8 is considered a safe play provided there is no mistake in your calculation. Also to take note that the motor’s weight is within your weight constraint.
Now, you should have your calculated’s torque and RPM ready and you may start to choose the motor you want to use. You can try to look for the DC motors you want here. Try to use the filtering tool on the left to narrow down the offers.
If, somehow your system is uncommon and you are unable to apply the equations given above to estimate the torque and RPM. Don’t worry, you still can use your common sense to ‘guess’. Yes, guessing is the last thing you can do and it is not something wrong at all as long as your project is able to work.
Bigger motors produce higher power, either high torque or higher speed or both.
We need to start ‘guessing’ for the speed you required because it is easier. Let me give you some guides.
The drone’s motors spin at >10K RPM
Volleyball’s feeder works at 1000-2000 RPM
Conveyor belt’s motor usually rotates at 60-20 RPM
Typically, RPM > 10K considered extremely fast, 500- 50 RPM is the normal range of speed for most projects.
Once you got the RPM, then you can choose the motor size and weight. In most cases, the motor size and weight are one of the important specifications to consider too. I would suggest you to go for the biggest permission size to give more allowance to the motor torque.
I hope this article helps. In case you have any questions or found any mistakes from the article, please feel free to leave your message below.