In this article I will try to explain a few key parameters which you need to take into consideration when choosing the motors for your robot. To make it as clear as possible I will do it on an example. It will be quite simple so we can avoid complicated calculations. Your project may be much more complex but I wanted to focus mostly on motor characteristics it this one. Some less significant physical effects are omitted in this article.

The example robot is a mini-forklift. Two identical motors will drive the front wheels and one stronger motor will lift the fork. There is a ball caster (it could also be a swivel wheel) on the rear of the robot therefore it can turn left or right by controlling the front traction motors. The picture below shows the simplified design of our project.

Ok, so let’s get started.

Step 1: Determine the total weight and traction requirements

Since this is not a full-size forklift which could be found in a warehouse, but a miniature version with the total length of about 30cm, it is expectedly not as heavy. We can’t exactly determine the weight yet because we haven’t chosen the motors.. We have to estimate the robot weight… let’s say…2kg (Why not, right?) And let’s agree that the total load which could be carried by the robot is 1kg. Of course, in the real scenario we would estimate weight of each part of the robot.

Let’s avoid using very powerful motors and a big battery by limiting the maximum speed (as we do not want our cargo falling on the floor during braking) and acceleration. In the real-life scenario, we would calculate the center of the mass and maximum negative acceleration to avoid robot tilting. We would also estimate the friction force between the fork and the load to avoid load sliding down. For our purpose let’s assume that the nominal speed is 0.3m/s. It should be enough. The maximum speed will depend on other factors, which are yet to be identified. However, we can expect that the maximum speed will be in a range of 0.35 to 0.8m/s.

The mini-forklift is not an all-terrain vehicle but we want it to be able to climb on slope. Let’s say that the maximum slope incline is 15% (angle of incline = arctan(0.15) ≈ 8.5°).

We can also specify that acceleration time until the nominal speed is reached shall be 0.2s (I will explain how to calculate that in a separate article).

And finally, let’s specify that the load can be lifted by 0.1m a second.

Summarizing all the values:

Step 2: Calculate the traction wheel rotation speed

It is quite easy to calculate the needed wheel rotation speed. All you need is wheel diameter and the nominal robot speed. Let us assume a wheel diameter of 85mm, and calculate wheel rotation speed:

Step 3: Calculate the traction motor power/torque

If we omit friction, we can estimate the motor torque needed to climb on the previously specified maximum slope. The thrust force, needed to overcome gravity on the slope, is the following:

If we want to move the robot uphill with the nominal speed, the mechanical power needed to do it is:

It is a mechanical power for the entire robot, so we have 0.66 W per one traction motor. The corresponding torque for the traction wheel, per one traction wheel is the following:

We have now estimated the most important parameters which are required to be able to choose the traction motors. Of course, for now we have omitted friction, efficiency of the motors and the gearbox. Furthermore, this estimation does not include the acceleration from v=0 and assumes that the robot is already in motion, but we don’t want to push it by hand ;) In fact, to start the robot we need more power then we calculated, unless we want to wait forever (I don’t think we have that much time). I will write some more about the acceleration in the next article.

Step 4: Calculate the lifter motor rotation speed

Similarly as for traction motors, we need the pulley diameter and the load lifting speed. Let us assume a pulley diameter of 10mm = 0.01m. So, the nominal rotation speed is:

Step 5: Calculate the lifter motor power/torque

We are also going to neglect friction for the purpose of estimating the lifter motor torque, needed to elevate the load. We know that the maximum load is 1kg but, the fork itself and some of the lifter components, will also move up with the load- we have to include them in the calculation. Let’s say that the fork weight is 0.3 kg. Therefore the force needed to lift the fork and the load, is:

The corresponding torque for our pulley diameter is:

If we want to elevate the load with the nominal lifting speed, the needed mechanical power is:

Step 6: Not really a step, but let’s summarize the values we have calculated so far

Requirements for the traction motor (x2):

Requirements for the lifter motor:

Step 7: First conclusions

Now we know that in both cases we need motors with rotational speed much lower that the typical motor. Small DC or BLDC motors usually have the rotation speed between 3000 and 12000 rpm or more. Below you can see the characteristic of SCR18–3702 6V, DC motor (made by Citizen Micro Co., Ltd.).

What can we read from this characteristic?

a) The rotational speed in rotations per minute. The maximum rotational speed of this particular motor is above 8000 rpm — but only when we do not receive any mechanical power (or, in other words, any torque) from motor output shaft.

b) The maximum motor power is almost 3 W and is available with the speed equal to about 4000 rpm.

c) The maximum torque is 12.5 Nm but it is available with an output speed which equals… zero.

d) The maximum efficiency is near 70%, with the output speed ≈ 6500 rpm.

The red line on the picture below indicates the working point at a speed of 191rpm (as a lifter motor).

With this rotational speed, we can read the following:

on the red line — that the torque would be only 12 mNm (we need 64 mNm)

on the yellow line — that the efficiency in this point would be only 5%,

on the blue line — that the output power would be only 0.5 W (we need 1.28 W)

on the green line — that the output current would be as high as 1.9 A

Now it is more than clear that we need a gearbox to convert the power and get more torque with less output speed.

Step 8: Choose the motor and gearbox for the lifter

Lifter motor — previously calculated values, for the record:

So, how to choose the right gear ratio? First, we need to find the motor working point. The speed and the torque are dependent on each other and on the gear ratio, so we can start with the motor output power. For the lifter motor, we need 1.28W. Draw corresponding lines on the characteristic we analyzed earlier and conclusion will be quite clear:

First, we can read the motor speed for this point. There are two points that correspond with this power value but we should choose the one with higher efficiency, so the corresponding motor speed is about 7000 rpm. Now we can choose the gear ratio R = 191/7000 ≈ 1/37.

Then, we can read the motor torque and calculate the torque at the gearbox output shaft, when the gearbox efficiency is 100% (impossible, but we don’t care for now):

The torque is bigger than required 64 mNm.

(In fact, it should be equal to 64 mNm, because we have taken the power of exactly 1.28 W and, with given speed, the torque can’t be higher for that output power. But reading from the graph is not very accurate.)

What’s more, the efficiency is close to maximum for this motor! And we also know that the motor current is about 350 mA.

Unfortunately, we would for sure not find the gearbox with the ratio of exactly 1:37, with the 100% efficiency. As we can find in datasheets, the maximum efficiency of gearboxes for this ratio is about 50% … 70%. So we have to calculate it again, in other way.

We know that we need a gearbox, with efficiency in a range 50% … 70%. So we can take the worst-case value of gearbox efficiency ηG=50% and assume that the motor power has to be higher than the gearbox output power:

We can see from the graph that our SCR18–3702 motor has the maximum power of 2.67W, therefore we can still use this motor.

Resulting parameters:

Ok, so we have taken the gearbox efficiency into account, but what about the availability of the gearbox with the ratio of 1/27.3? I found the catalog of gearheads for this motor and the closest available model (IG-22V) has the ratio of 1/22.56 and the efficiency of 66%, for the rated torque. Because the efficiency is much worse with a light load (less torque), we will stay at gearbox efficiency of 50%.

Before we draw the lines, we need to calculate the motor speed:

Resulting parameters for the lifter motor, with given gearbox ratio (R = 1/22.56):

Finally, we have the solution that meets our requirements. Ok…almost… as there are also other losses ex. between wheels and the ground, but what we can do is simply take a bigger margin for our calculations. As a last resort, we can use slightly higher supply voltage and both the power and the torque will go up.

Step 9: Choose the motor and gearbox for the traction motors

Traction motor (x2) — previously calculated values, for the record:

We will use the same motor as before. The gearbox efficiency for our calculations will be 45%, because the speed is lower and we probably will need one more stage in the gearbox. More reduction stages in gearbox mean less efficiency.

The minimum motor output power is:

Now we can read the rotational speed from the graph, with given power:

The ideal gear ratio is:

Now we can look into the catalog. We found two, nearest available gear ratios: 1/76 and 1/90. We need to take 1/76, because we have to go into the “more power” direction on the graph, where the motor speed is slightly lower than for an ideal gear ratio.

The chosen gearhead has the efficiency of 53%. We will stay with estimated 45%, for the lower torque than nominal for this gearhead.

So, the new motor speed is:

Resulting parameters for traction motor, with given gearbox ratio (R = 1/76):

In this case, the resulting torque (157mNm) is much bigger than the required one (93.5mNm). It is good news, because we can see on the graph that for a smaller load, the efficiency is much better.

Step 10: Final conclusions

We needed to find motors and gearboxes for our simple forklift robot. Before we started, we made the following assumptions:

there is no losses between rotational motion of gearhead output shaft and the linear robot motion

the robot works under the maximum load condition

we neglect the acceleration requirements

the efficiency is only estimated

the parameters are read out from the graph, which is not accurate

After described selection process, we found the motors and gearbox models that are available on the market and can be used to meet our requirements. We also tried to maximize efficiency in the process. We could get much bigger motors and use them without a gearbox — do you remember the 5% efficiency, which we estimated for the motor without the gearbox, and we haven’t even met the requirements? Efficiency of 25% does not look great on paper, but it is a reality.

In the next part of the article I will try to explain how to deal with acceleration requirements and how to calculate motor parameters more accurately — maybe even some more.

Thanks guys!