FixTheRobot Explore Robotics / Systems Engineering / Engineering Guides / Module 03

Engineering Guides · Module 03

Calculating motor torque and speed requirements

From payload and speed to torque at the motor shaft, with the margin and the checks that catch an undersized motor before it overheats.

  • Intermediate
  • Module 03: Actuators, Motors, Electrical & Power Integration
  • Written for ROS 2 Jazzy where ROS 2 is used
  • Sources checked 2026-11-04

Assumptions: Wheeled robot, loads shared equally between driven wheels; rolling resistance + grade + acceleration only (no aerodynamic drag, slip or turning scrub). The example numbers are illustrations, not a product. The calculation is executed by the site’s tests.

1. Engineering problem

A motor that is too weak cannot accelerate the robot or climb a slope; one that runs at its limit overheats and fails after hours. Size the motor and gearbox from the loads, not from what is on the shelf.

2. When is this needed?

  • Designing a drivetrain for a new mobile robot.
  • Changing payload, wheel size or top speed of an existing one.
  • Investigating a motor that overheats (see the diagnostic when available).

3. Selection and design decisions

The force the drivetrain must supply at the wheels, per the model used by the Motor Sizing Calculator:

F = m·g·Crr·cos θ  +  m·g·sin θ  +  m·a
  rolling resistance       grade       acceleration
Motor sizing quantities
QuantityFormulaCompare with (datasheet field)
Wheel torque per motorTw = F·r / N—
Motor-shaft torqueTm = Tw / (G·η)Continuous (rated) torque for steady loads; peak/stall torque for accelerations
Motor speedωm = (v/r)·GNo-load speed (leave at least 10 % headroom)
Mechanical power at the wheelsP = F·vRated output power; electrical power is higher by the motor and driver losses

Choosing the gear ratio

A higher ratio multiplies torque and divides speed: motor torque falls by G, motor speed rises by G. Choose the ratio so that the required motor speed sits below the no-load speed with margin and the required torque sits below the continuous rating with margin. If no ratio satisfies both, the motor is too small.

4. Advantages and disadvantages

  • Higher ratio: smaller motor, more efficient torque, lower top speed, more backlash and gearbox friction.
  • Larger wheel: faster for the same motor speed but needs more torque (Tw = F·r).
  • Larger safety margin: robust against uncertainty in mass and friction, heavier and costlier.

5. Requirements and constraints

  • Worst case payload, steepest slope and worst floor (carpet raises rolling resistance); measure Crr instead of guessing.
  • Motor thermal limit: continuous torque is set by heat, not by magnetics. Duty cycle matters.
  • Supply voltage must reach the no-load speed you assumed under load.
  • Driver current limit must allow the peak torque.

6. Architecture

battery ─▶ motor driver ─▶ motor ─▶ gearbox (ratio G, efficiency η) ─▶ wheel (radius r) ─▶ floor
                              ▲                                                   │
                              └──────────── encoder (speed, position) ◀───────────┘

7. Implementation

import math
g = 9.80665
m, r, n_motors = 20.0, 0.10, 2             # kg, wheel radius (m), driven wheels
v, a, slope_deg, crr = 1.0, 0.5, 0.0, 0.02 # top speed (m/s), acceleration (m/s^2), slope, rolling resistance
ratio, eta, margin = 20.0, 0.85, 1.5       # gear ratio, gearbox efficiency, safety margin

th = math.radians(slope_deg)
f_roll = m * g * crr * math.cos(th)
f_grade = m * g * math.sin(th)
f_cont = f_roll + f_grade                   # steady speed
f_peak = f_cont + m * a                     # while accelerating
tw_peak = f_peak * r / n_motors             # wheel torque per motor, N*m
ts_peak = tw_peak / (ratio * eta)           # motor-shaft torque per motor
ts_cont = f_cont * r / n_motors / (ratio * eta)
w_rpm = v / r * 60 / (2 * math.pi)
print(round(f_roll, 3), round(f_peak, 3))
print(round(tw_peak, 4), round(ts_peak * 1000, 1), round(ts_cont * 1000, 1))
print(round(ts_peak * margin * 1000, 1))
print(round(w_rpm, 1), round(w_rpm * ratio, 1))

Printed (checked by the site’s tests):

3.923 13.923
0.6961 40.9 11.5
61.4
95.5 1909.9

Reading it: rolling resistance is 3.92 N and the peak force while accelerating is 13.92 N. Each of the two motors must provide 0.696 N·m at the wheel at peak, which is 40.9 mN·m at the shaft through a 20:1 gearbox at 85 % efficiency; at steady speed it is 11.5 mN·m. With a 1.5× margin the peak target is 61.4 mN·m. At 1 m/s the wheel turns at 95.5 rpm and the motor at 1909.9 rpm.

Compare with a candidate: its rated (continuous) torque should exceed 11.5 mN·m × margin, its stall or peak torque should exceed 61.4 mN·m, and its no-load speed should be above 1909.9 rpm × 1.1.

8. Real examples

  1. Add a 5° ramp: grade force m·g·sin 5° = 17.1 N, more than doubling the continuous torque: the motor sized for flat floors overheats on the ramp.
  2. Switch to 0.15 m wheels: the same speed needs less motor speed but 1.5× the torque.
  3. Payload doubles to 40 kg: every force doubles. Re-run the numbers before anyone loads it.

9. Failure scenarios

  • Sizing only for peak torque and ignoring continuous: the motor reaches thermal limit in minutes under steady load.
  • Using a datasheet no-load speed as the working speed: loaded speed is lower.
  • Forgetting the efficiency of the gearbox (and of the motor and driver for electrical power).
  • Assuming rolling resistance without measuring it on the real floor.

10. Troubleshooting

  1. Measure motor current and temperature under the real duty cycle (a clamp meter or the driver’s telemetry, and a thermocouple on the case).
  2. Convert current to torque using the motor torque constant from the datasheet and compare with the required torque.
  3. If current is far above prediction, measure the real rolling resistance: pull the robot at constant speed with a force gauge.
  4. Check for mechanical drag: bearings, tight belts, misaligned axles, brakes.
  5. Re-run the calculation with measured values.

11. Validation

  • Measured steady-state current matches the predicted continuous torque within about 20 %.
  • The robot completes the worst-case duty cycle (payload, slope, speed) with the motor case temperature stable below the datasheet limit.
  • It reaches the target speed with voltage headroom under load.
  • The worked example prints the values above (executed by the site tests).

12. Engineering checklist

13. Further references

  • Rolling resistance, grade and acceleration forces: Newtonian mechanics (any mechanics text); the formulas above are the complete model.
  • Motor datasheet fields to use: rated torque, stall torque, no-load speed, torque constant, rated current, thermal resistance and maximum winding temperature (read from your motor’s own datasheet).

Related on FixTheRobot