Select the Right Battery for your Robot DC Motors – Part 2 of 2

This is the second part in this series. To read the first part please click on Part-1

Matching Motors with Batteries. The Mathematics

So far, we learned motor specifications, battery specifications and battery types. Now, we are equipped to make simple decisions on what battery to select for a given motor and operational characteristics. In this discussion, we will consider mobile robots and not flying robots. As stated before, that will require another writeup!

To make this concept clear, I’ll take my example. I wanted to build a robot with 4 wheels. So, I have the chassis, 4 geared DC motors and 4 wheels. For each one, the image and specifications that were available to me are given below:

Geared DC Motor: 

12V 60 RPM DC Motor

12V 60 RPM DC Motor

The motor specifications available to me are:

  1. Voltage = 6V – 12V (max)
  2. RPM = 60 RPM
  3. Motor Weight = 125gm
  4. Torque = 2Kgcm
  5. No-Load current = 60mA (max)
  6. Stall current = 300mA (max)

A. Calculating Weight of the Robot Assembly

The DC motor weighs approx. 125gms/motor, chassis weighs another 125gms and each wheel weighs around 50gms.

Weight (approx) (Without Electronics) = (4 x DC motor weight) + (1 x chassis weight) + (4 x wheel weight) = (4 x 125) + (1 x 125) + (4 x 50) = 825 gms

Thus, the basic motion hardware is close to 1Kg! This I call as Wch– The chassis weight

Now let’s assume that the electronics will add some more weight. Let’s assume it is close to 100gm (that’s a lot by the way). We call it Wel 

The last thing to consider is the battery weight. Well, this is not available easily. So we need to weigh again. This is a catch 22 situation. We have to select a battery but before that we need to know the weight! Just denote this as Wbt

Thus, total robot weight Wrb = Wch + Wel  + Wbt

From the above calculation, we know that the chassis and electronics weigh around 1Kg. Adding another 20% to that, a simple thumb rule for small robots, accounting for the batteries, the total robot weight is 1.2 Kg. (This is not a liner rule. Take the extreme case of NASA rockets. I guess the fuel weight is 80% of total weight).

Please note, when I say weight, its actually force because the value is mass x 9.8 m/s^2.

So remember this clearly…the mass is Weight divided by 9.8. That is what you should use in the equation that we will derive next.

B. Calculating Mechanical Power Requirements

We now have the dead weight of the robot which is actually the gravitational force.

To calculate the power and eventually battery capacity, let’s take a general case where we are trying to make the robot climb a small incline. We could have very well chosen the easier case of robot moving on a flat surface. However, that could lead to borderline case calculation. Trying to drive something uphill always requires more power than moving on a flat surface. Thus, considering a small incline will take care of any unforeseen situation and will also result in slight overpower. Not a bad situation as compared to an underpowered robot.

The diagram below outlines the various physical forces that come into play when your robot tries to move up an inclined surface:

Incline for robot physical forces

Here is an explanation of the diagram:

  1. The surface is inclined at an angle α (alpha)
  2. The circle represents a single robot wheel with radius R
  3. The weight of the robot acts downwards, perpendicular to the ground, irrespective of the inclination angle. Its value is mg (mass x gravitational acceleration). This is in fact a force
  4. The force Fn that gets balanced by an equal and opposite force upwards (Newton’s 3rd law, normal force)
  5. Fadv is the force required to move/accelerate the robot up the incline. This force must be greater than the sum of the frictional force trying to stop the wheel from rotating (Ff) and the component of weight trying to pull it down. The worst case scenario is that the robot is accelerating upwards too. The equation can be written as

Fadv  = Ff + mg Sin α

The frictional force is Ff =  μ mg Cos α

; where μ is called the co-efficient of rolling friction and is a dimensionless number. In fact, this number has two different values in two different conditions; when the object is stationary, its called “static friction” and when the object is moving, I guess it’s called “kinetic friction”. Whatever the name be, its important to know that static value for μ is far greater than kinetic value. Also, it’s difficult to measure and have a precise value for this. The value of μ is different for different cases. It’s dependent on the wheel material and the surface on which its moving. In my case, my wheel has rubbers and my house has concrete flooring. For that case, a quick search on internet reveals a value or around 0.9 – 1.0

Another way to look at it is that when the wheel tries to counter-balance the friction, there is torque produced. This can simplify our life. Thus, we can say

Ff = T/R

Where T is the torque produced by the wheel and R is the wheel radius.

With this, the new equation is

ma  = T/R + mg Sin α

Now, lets take care of the direction of these forces. The weight is pulling the robot down and the friction/torque is pushing the motor up. Therefore, taking the negative sign into consideration or the opposing nature of these forces and rearranging the equation above, we get a value for torque as

T = m x (a + g Sin α) x R

The above equation is for total torque. If we are driving our robot using N number of motors, then torque per motor is

Tm  = [ m x (a + g Sin α) x R ] / N

Given that we do not have very high efficiency in the cheap motors that we get from local shops, we need to account for the efficiency. Therefore, the actual torque required per motor would be

Tactual  = [ m x (a + g Sin α) x R ] * (100/E)/ N

Where E is the efficiency of the motors in %. Based on data available on the internet, a safe figure is 70%.

The power is given as P = T ω

Even though we are considering velocity in the straight line, we need angular velocity since the wheels rotate. The relationship between angular velocity and linear velocity is

ω = v/R ; R = radius of the wheel 

Thus, power needed per motor becomes

P = Tactual x ω = Tactual x v/R

C. Calculating Electrical Power Requirements

After we successfully calculate the power we now need to derive how much current is required to deliver the power for a given voltage. The power equation in electrical terms is

P = Voltage x Current

Please remember, the mechanical power that we calculated before is what our motors should provide. To provide that power, we need a voltage and current. Thus the electrical power supplied to the motors must be at-least equal to the mechanical power required. Therefore, the power equation is

Pmechanical = Pelectrical

This means, we can safely say that, at minimum, we must satisfy the condition below for every motor

Tactual x v/R = Voltage x Current

We know the power requirements from our previous calculation. We select a voltage that falls within the motor supply voltage range (good practice is to select the middle value from the range). Thus, the total current requirement will come out as

Current = P / Voltage

The above value is instantaneous current for each motor. To be able to supply the current for a period of time (in minutes or hours), we simply need to multiply it with time. Thus, we get the batter capacity as

Capacity = Current x Time

Thereby giving us the mAh rating of the battery!

Remember, the above capacity is for one motor (Since this was derived from the Torque per Motor equation). Thus, to get the actual capacity, multiply the capacity by total number of drive motors.

Another interesting point to note is that the final power requirement equation becomes independent of the wheel radius!

Some folks say that you should have 3 times the calculated power to be on the safe side. I’m not sure if we need to go that high. But depending on your case, you are probably the best judge of making that call.

Finally, I’m still learning…so if you think there are some errors in this, please point it out to me (I still have many questions in my mind 🙂 )

Disclaimer : You bear the risk of anything unexpected and trying it…don’t blame me! You cannot build a NASA robot with these. The values are only rough approximations


22 thoughts on “Select the Right Battery for your Robot DC Motors – Part 2 of 2

  1. Your normal force in your free-body diagram is pointing in the wrong direction. The normal force will be holding the robot on the incline by pointing upward. The normal force and gravitational force will not be able to balance in the free-body diagram you have provided.

    • You are right. The normal force is perpendicular to the ground that prevents the object from penetrating to the ground…my simple way of understanding. Wanted to split the gravitational force into two components and created the confusion. Have indicate the normal force in the diagram now.

  2. I just want to say I am just beginner to blogging and truly enjoyed you’re web site. Likely I’m going to bookmark your blog . You amazingly come with really good article content. Cheers for sharing your web page.

  3. Select the Right Battery for your Robot DC Motors – Part 2 of 2 Vishnu's Blogs Pretty nice post. I just stumbled upon your weblog and wished to say that I have truly enjoyed browsing your blog posts. In any case I will be subscribing to your feed and I hope you write again very soon!

    • No sir, the equation is correct. Let’s assume that I need a Torque of 1 Newton meter. I buy a motor from the shop that has rated torque as 1 Nm but the efficiency is written as 70%. Therefore, the motor actually delivers only 0.7 Nm. Thus, to get at-least 1 Nm with a motor of 70% efficiency, I need a motor with minimum rating of 1/0.7 = 1.42 Nm. Thus, we need a higher number if the efficiency is less than 100%. Hope this clarifies.

  4. Pingback: Batteries | Raspberries and other fruits

  5. Now, we can consider the robot motion formulas. There is a formula that links the motor torque with the robot weight and acceleration. So this formula provides us a very important information. That is, knowing the robot weight (in kg), knowing the acceleration desired, this formulas says wich is the torque that we have to consider in the motor choice.

  6. Dear VISHNU,
    I am designing an AUV. My teammate did some calculations and found the following that the vehicle needs a torque of 9 N.m and 3000 RPM. I am trying to find a motor that can drive the torque-load of the vehicle so I did some calculations. I calculated both the mechanical power and the current, but the numbers do not seem right.
    Below is my calculation. I am wondering if you can help me with my calculations, and advise me. I calculated the mechanical power for the motor to drive the torque- load based on the information that was provided.
    Pmec= Torque * angular velocity
    Since the angular velocity is given in RPM, we need to multiply by 2*pi/60 which is 0.104
    so the mechanical power is:
    Pmec= 9N.m*3000*0.104
    P =2828 watts
    Then the current driven by the motor can be found as follow:
    P= V*I
    Assuming that the motor can be used with a 12 V power supply
    I =P/V
    I= 2828/12
    I= 235.66 Amperes
    Please, help me!

  7. hi thanks for your detailed explanation.

    i have one clarification in this equation ma  = T/R + mg Sin α

    a= ? is it 9.8 m/s^2 or only 9.8 ?


    • ma = T/R + mg Sin α
      m -> Mass (Kg)
      a -> Acceleration (m/s^2)
      T -> Torque (Nm)
      R -> Radius (m)
      g -> Gravitational acceleration (9.8 m/s^2)

      Considering only units:
      ma = Kg. m/s^2 = N
      T/R= Nm/m = N
      mg = Kg. m/s^2 = N

      Thus, LHS = N and RHS is N + N

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s