This tutorial is intended to complement RobotShop’s Drive Motor Sizing Tool by providing you with a step by step explanation as to the calculations behind the dynamic tool. In the image below, half a mobile robot is shown. Although in this scenario only two out of the four wheels are driven, the equations below can be used for any number of passive and driven wheels, as well as for tank tracks. The equations are presented without units (units are presented with the drive motor selection tool).

To calculate the required torque, power, current and battery pack required by a wheeled mobile robot, there are several principles that must be understood: concept of vectors; 2D Force balance; Power; Current and Voltage. If you do not understand these concepts, you are encouraged to research them prior to reading this tutorial.

In order to roll on a horizontal surface, a wheeled robot’s motors must produce enough torque to overcome any imperfections in the surface or wheels, as well as friction in the motor itself. Therefore theoretically, a robot (small or large) does not require much torque to move purely horizontally. Obviously there will be more friction and resistance in a large robot than in a small robot, though it is still exponentially less than when a robot encounters an incline.

In order for a robot to roll up an incline at a constant velocity (no acceleration or deceleration) it must produce enough torque to “counteract” the effect of gravity, which would otherwise cause it to roll down the incline. On an inclined surface (at an angle theta) however, only one component of its weight (**mgx** parallel to the surface) causes the robot to move downwards. The other component, **mgy** is balanced by the normal force the surface exerts on the wheels.

In order for the robot not to slide down the incline, there must be friction between the wheel and the surface. The motor in a heavy truck may be able to produce 250 horsepower and significant torque, but we have all seen (in person or in video) large trucks simply spinning their wheels as they fall backwards on an icy street. It is friction (**f**) that “produces” the torque.

The torque (**T**) required is:

To select the proper motor, we must consider the “worst case scenario”, where the robot is not only on an incline, but accelerating up it.

Note now that all forces (**F**) are along the x and y axes. We balance the forces in the x-direction:

Inserting the equation for torque above, and the equation for mgx, we obtain:

Rearrange the equation to isolate T:

This torque value represents the total torque required to accelerate the robot up an incline. However, this value must be divided by the total number (**N**) of drive wheels to obtain the torque needed for each drive motor. Note that we do not consider the total number of passive wheels as they have no effect on the torque required to move the object aside from adding weight.

The final point to consider is the efficiency (e) in the motor, gearing and wheel (slip).

This increases the torque required and compensates for inefficiencies.

Total power (**P**) per motor can be calculated using the following relation:

T is known from above and the angular velocity (**w**) is specified by the builder. It is best to select the maximum angular velocity to be able to find the corresponding maximum power. Knowing the maximum power and the supply voltage (V) which the builder chooses, we can find an idea of the maximum current (**I**) requirements:

The two equations above are used to produce the following relation:

Finally, the capacity (c) of battery pack required can be estimated using the equation:

You may wonder why such a large value is needed. This is because when choosing a battery pack, the rated amp hours are not an accurate indicate of the maximum current the pack can produce for extended periods of time. Also, the total charge is rarely retained over time. This way you will ensure the battery pack you select will be capable of producing the current your motors require, for the time you require and with the inefficiencies inherent in recharging battery packs.

Note: This is the battery required PER MOTOR. To obtain a total battery pack required for the robot, multiply this value by the number of drive motors.

## Cameron

Hi there, this is a great post. However, I am struggling to grasp how you go mathematically from M.a = M.g.sin theta + T/R, to M.R(a + g.sin theta). I get M.R(a – g.sin theta). Both beginning and end make sense, I just can’t make the maths work.

## Coleman Benson

@Cameron http://www.robotshop.com/blog/en/files/sunforcebal.jpg may be wrong: in a force balance, M*a = T/R-M*g*sin(theta). Friction is up the incline, in the direction of the acceleration (which is contrary to a ball rolling down the incline).

## Peter

Great article. I am in the process of making a unit to traverse around the farm and change attachments to do various tasks. This article has been a huge help. I am a sparky by trade and therefore doing a hybrid diesel/electric unit using 3 phase geared motors at the drive wheels and controlling these using VSD units. This reduces the size of wire and enables me to use off the shelf control units complete with inbuilt reverse, braking etc. Your info has been a great help in assisting me with calculations.

## Cameron

Ah, that makes sense now, thanks for the reply. How do I establish a value for acceleration? Can I just take the average over the distance, or do I need to consider the moment of inertia if starting from a stand still?

## Coleman Benson

@Cameron It’s really up to you – it’s part of the equation so it needs to be considered. Looking into the moment of inertia may be a bit much (but certainly not out of the question if you want to be precise). Just think of the distance you want it to cover in order to reach a certain speed (from a dead stop).

## Cameron

Yeah that’s what I have done. Looked into inertia calculations but can get a bit nightmare trying to find CG of individual components and such like. Glad you’re still around though, noticed this was originally posted in 2012!