DC, BLDC, Stepper & Servo Motors for Robotics

See also (Tier 3 family index): Motor Families (robotics)

1. At a glance

A motor converts electrical energy into mechanical rotation. In robotics that is only half the problem — the motor is one node in a five-element chain: motor + gearbox + driver + sensor + controller. Sizing or sourcing any element in isolation is the most common cause of a robot that physically refuses to meet its specification, and the cause is almost always discovered after the mechanical assembly is built and rework is expensive. The chain has to be designed as a system.

The theoretical foundation (Lorentz force, back-EMF, torque-speed curve, slip, copper/iron losses, FOC reference-frame algebra) is covered in [[Engineering/electric-motors]]. This note is the robotics-applied counterpart: it is about which motor family belongs in which robotic system, how to pair it with a gearbox / driver / encoder, what real parts to buy from Maxon / Faulhaber / Robotis / T-Motor / MJBots, and what goes wrong when integration is sloppy.

The five families a robotics designer actually picks from:

  • Brushed PMDC — single H-bridge drive, simplest possible controller, cheap; surviving robotic niches are small mobile-robot wheels, low-cost prosthetics, hobby/education arms, and where ironless-rotor brushed motors (Faulhaber, Maxon DCX) outperform brushless on cogging and low-speed smoothness.
  • Brushless DC / PMSM — three-phase stator with permanent-magnet rotor; the workhorse of modern robotics. With six-step (“trapezoidal”) commutation it is called BLDC; with sinusoidal field-oriented control (FOC) it is called PMSM. Same hardware, different firmware. Dominates cobots, industrial servos, drones, legged robots, and electric-vehicle traction.
  • Steppers — two-phase or five-phase, open-loop position by counting commutation steps. 200 steps/rev (1.8°) NEMA 17 is the canonical 3D-printer motor. Cheap, simple, no encoder needed (but increasingly run closed-loop). Torque collapses with speed.
  • Smart servos — motor + gearbox + driver + encoder + microcontroller + bus interface in one housing. Dynamixel, Hebi X-series, Maxon IDX; the plug-and-play option. Roughly 10× more expensive per N·m than rolling your own but 10× faster to integrate.
  • Quasi-direct-drive (QDD) actuators — large-diameter, low-KV BLDC + low-ratio (6:1 – 10:1) planetary, optimised for backdrivability and proprioceptive torque sensing. The defining actuator of modern legged robotics (MIT Mini Cheetah, Unitree A1, MJBots qdd100, T-Motor AK-series).

The single most important “first ask” before specifying any of them: what does the joint actually need to do — continuous torque, peak torque, peak speed, duty cycle, backlash tolerance, backdrivability, sensing requirement, ambient temperature, mass budget, cost ceiling. Skip that ask and the rest is guessing.

2. First principles

Full derivations live in [[Engineering/electric-motors]] §2; this section collects the equations a robotics designer uses for sizing, in the form they are used.

Torque-speed curve. For a DC or PMSM machine driven at fixed terminal voltage V with armature resistance R:

τ(ω) = K_T · (V − K_e · ω) / R

This is a straight line from stall (ω = 0, τ_stall = K_T · V / R) to no-load (τ = 0, ω_0 = V / K_e). Real motors have a small friction torque and a small no-load current that shift both endpoints slightly. Everything a designer needs about a motor at fixed bus voltage is encoded in this line plus the thermal limit.

Back-EMF constant. E = K_e · ω with K_e in V·s/rad (SI), V/krpm or rpm/V (industry).

Torque constant. τ = K_T · i with K_T in N·m/A (SI), oz·in/A or lb·in/A (US industry).

K_e and K_T are numerically equal in SI. Proof: at steady state with no losses, electrical input power equals mechanical output power, so V · i = τ · ω; substituting V = K_e · ω and τ = K_T · i gives K_e · ω · i = K_T · i · ω, hence K_T = K_e. This identity is broken by unit choice: in the common drone “KV” convention (rpm/V at no load), the equivalent K_T in N·m/A is 60 / (2π · KV) ≈ 9.5493 / KV.

Power. Mechanical: P_mech = τ · ω (W, with τ in N·m and ω in rad/s). Electrical: P_elec = V · i. Efficiency η = P_mech / P_elec; peaks at 70–85 % near rated load for premium servos, lower (50–70 %) for hobby BLDC, and falls off at both light load (iron loss dominates) and overload (copper loss explodes).

Thermal limit. The continuous torque rating is set by the temperature at which the winding insulation degrades — typically Class F (155 °C) or Class H (180 °C). Heat generated is approximately i² · R_phase + iron loss; heat dissipated is governed by the thermal resistance R_th from winding to ambient (°C/W). Continuous current i_cont is limited by i_cont² · R ≤ ΔT_max / R_th. Peak current can exceed i_cont by 3–10× for seconds, depending on the thermal time constant of the winding (typically 5–60 s for small motors, minutes for large).

3-phase BLDC under FOC. Three stator phase currents are transformed to a rotor-aligned (d, q) reference frame via the Clarke (3 → 2 stationary) and Park (stationary → rotor) transforms. In the rotor frame:

  • i_d → flux-producing axis (kept at zero for surface-PM motors; used for field-weakening above base speed)
  • i_q → torque-producing axis: τ = (3/2) · p · ψ_PM · i_q where p is pole pairs and ψ_PM is rotor magnet flux linkage.

Two PI loops (one on i_d, one on i_q) run at 10–40 kHz; the result is a motor that behaves like a brushed DC machine but without brushes, with full torque from zero speed, and with smooth torque (no commutation ripple). FOC is what makes modern robotic joints possible.

Stepper basics. A hybrid stepper has two phases (A, B) and a toothed rotor. Energising A and B sequentially in quadrature rotates the rotor in discrete steps. A NEMA 17 with 200 full steps/rev = 1.8°/step; microstepping (sinusoidal current shaping at 1/16 or 1/256) interpolates between full steps for smoother motion and apparent higher resolution, but absolute positioning accuracy is still set by the rotor tooth geometry (typically ±5 % of one full step).

Mechanical impedance. When the motor connects to a load through a gearbox of ratio N, inertia reflects as J_load / N² to the motor, and torque reflects as τ_load / N. The effective time constant of the closed actuator is approximately √(J_eff / k_eff) for a series-elastic actuator and τ_thermal · J_eff / J_motor for thermal sizing. A practical consequence is that doubling the gear ratio reduces motor-side inertia by a factor of four, which is why high-ratio gearing dominates industrial-arm design (the motor “sees” a stiff, light load), but ruins backdrivability (the joint can no longer push the motor through its reflected inertia + friction).

Mechanical time constant. τ_m = J · R / K_T² (s) governs how fast a motor can change its speed under a step voltage command. Premium servo motors achieve τ_m of 1–5 ms (the motor reaches 63 % of final speed in milliseconds), making them suitable for high-bandwidth closed-loop control. Hobby BLDC may have τ_m of 50–200 ms — too slow for arm-joint force control.

3. Practical math — three worked sizing examples

Example A — Mobile robot wheel drive

A differential-drive indoor robot: m = 40 kg, two driven wheels of radius R = 75 mm, target top speed v_max = 1.5 m/s, target acceleration a_max = 1.0 m/s², rolling friction coefficient μ_r = 0.02 (good casters on polished concrete), gradient 0° (indoor flat).

Wheel angular velocity at top speed: ω_wheel = v_max / R = 1.5 / 0.075 = 20 rad/s = 191 rpm.

Drive torque per wheel (two driven wheels, equally loaded): τ_drive = ((m · a + m · g · μ_r) · R) / 2 = ((40·1.0 + 40·9.81·0.02) · 0.075) / 2 = ((40 + 7.85) · 0.075) / 2 = 1.79 N·m per wheel during acceleration. Continuous-cruise torque is just the rolling-friction component: 0.29 N·m per wheel.

Pick the gearbox first. A medium-frame BLDC has its sweet spot at 3000–6000 rpm. With ω_wheel_max = 191 rpm we need a ratio in the range N = 5000/191 ≈ 26 down to 3000/191 ≈ 16. Pick a 14:1 planetary so ω_motor_max ≈ 2700 rpm — comfortable.

Reflected torque at the motor: τ_motor_peak = 1.79 / (14 · η_gear) ≈ 1.79 / (14 · 0.85) = 0.150 N·m peak, 0.024 N·m continuous.

Part selection (real Maxon catalogue, 2024):

  • Motor: Maxon EC-i 40 (40 mm OD, 70 W, K_T = 36.9 mN·m/A, no-load 6500 rpm @ 36 V, continuous torque 122 mN·m).
  • Gearbox: Maxon GP 42 C 14:1 (continuous output torque 7.5 N·m — well above our 1.79 N·m requirement with margin for impact loads).
  • Driver: Maxon ESCON 50/5 (5 A continuous, 15 A peak, 50 V bus; closed-loop current and velocity control via analog or digital setpoint).
  • Encoder: Maxon ENX 16 EASY 1024 lines (4096 counts/rev after quadrature; on the high-speed motor shaft so effective wheel resolution is 4096 · 14 = 57 344 counts/rev).
  • Bus voltage: 24 V LiFePO4 pack — gives ω_motor_no_load ≈ 4300 rpm, comfortable headroom above 2700 rpm cruise.

Example B — 6-DOF cobot shoulder joint

A research cobot: payload 5 kg at full reach L = 800 mm. Joint 1 (shoulder) must hold and accelerate the entire arm + payload. Target peak angular velocity 180°/s = π rad/s ≈ 3.14 rad/s.

Gravity torque at full reach (worst case, arm horizontal): τ_grav = m_payload · g · L + Σ (m_link_i · g · L_cog_i) ≈ 5 · 9.81 · 0.8 + (a few kg of links, COG ≈ 0.4 m) ≈ 39 + 20 ≈ 59 N·m at the joint output. Round to 60 N·m required holding torque.

Acceleration requirement. Joint must reach π rad/s in say 0.3 s, so α = 10.5 rad/s². Reflected inertia at the joint (using m_eff · L²_eff ≈ 7 kg · (0.6 m)² ≈ 2.5 kg·m²): τ_inertial = J · α ≈ 26 N·m. Combined peak ≈ 86 N·m. Continuous (slow trajectory) ≈ 60 N·m.

First-attempt sizing. Maxon EC 90 flat brushless (90 mm pancake, 90 W continuous, K_T = 70.5 mN·m/A, continuous torque 387 mN·m, peak 4500 mN·m) plus Harmonic Drive CSF-25-100 (ratio 100:1, rated output 67 N·m, momentary peak 167 N·m, efficiency η ≈ 0.7).

  • Reflected continuous torque at motor: 60 / (100 · 0.7) = 0.86 N·m. Already 2× over the motor’s continuous spec of 0.39 N·m — fails.
  • Output speed: motor at no-load ≈ 4000 rpm / 100 = 40 rpm = 4.2 rad/s. OK.

Re-pick: lower ratio + larger motor. Drop to CSF-25-50 (50:1, rated 51 N·m) and step up to RoboDrive ILM 70x18 frameless (70 mm OD, K_T ≈ 0.18 N·m/A, continuous torque ≈ 1.5 N·m, peak ≈ 9 N·m).

  • Reflected continuous: 60 / (50 · 0.75) = 1.6 N·m at the motor. Still slightly over the 1.5 N·m continuous; needs cooling fins on the joint housing.
  • Reflected peak: 86 / (50 · 0.75) = 2.3 N·m — comfortably under the motor’s 9 N·m peak.
  • Output speed: motor no-load 6000 rpm / 50 = 120 rpm = 12.6 rad/s. Way over target 3.14 rad/s.

Driver. Elmo Motion Gold Twitter (G-TWI-15/100) — 15 A continuous, 30 A peak, EtherCAT or CAN. Or Synapticon SOMANET Node 1000 for compact integration.

Encoder. Two encoders for safety per ISO 10218: a 19-bit Renishaw Aksim2 magnetic absolute on the joint output (true position), plus a 17-bit absolute on the motor shaft (for FOC commutation and high-resolution velocity).

Brake. Mayr ROBA-stop fail-safe spring-applied electromagnetic brake on the motor shaft — holds the joint when power is removed, mandatory for any joint with vertical-axis load.

Example C — Quadcopter propulsion

A small quadcopter: m = 1.2 kg total all-up weight (AUW). Four 9-inch propellers (9047 = 9” diameter, 4.7” pitch). Target hover at ≤ 50 % throttle (so the headroom is available for manoeuvring; rule of thumb: thrust-to-weight ratio ≥ 2:1).

Required hover thrust per motor: T_hover = m · g / 4 = 1.2 · 9.81 / 4 = 2.94 N per motor = 300 g_f. With 2:1 T/W margin → 600 g per motor at full throttle.

Motor selection by KV. KV is the no-load speed in rpm per volt. Pick T-Motor MN3508-29 KV700 (3508 = 35 mm stator diameter, 8 mm height; KV = 700 rpm/V; mass 96 g). With a 4S Li-Po battery (nominal 14.8 V) the no-load speed is 700 · 14.8 = 10 360 rpm — well-matched to a 9” prop, which is most efficient at 7000–9000 rpm under load.

Equivalent K_T. K_T = 9.5493 / KV = 9.5493 / 700 = 13.6 mN·m/A.

Static thrust (from manufacturer’s test data with a 9047 prop at 14.8 V): ~600 g at 100 % throttle, ~300 g at 50 % throttle. Hover at 50 % throttle ✓.

Power at hover: Per-motor electrical ≈ 80 W, total 320 W. Total system with electronics + radio + camera ≈ 350 W.

Battery. 4S Li-Po 5000 mAh (74 Wh): flight time = 74 Wh / 0.35 kW ≈ 0.21 h = 12.7 min. Realistic with reserves (land at 20 % capacity, plus voltage-sag de-rating at end of pack): 10–11 min.

ESC. T-Motor F35A (35 A continuous, 4–6S input, DShot600 protocol) — peak current at full throttle is ~25 A so 35 A continuous gives comfortable margin. The DShot bidirectional variant (DShot300/600 with telemetry) returns commutation-derived rpm at every commutation cycle, which the flight controller can use as a closed-loop rotor-speed feedback path without adding a sensor.

Flight controller. Pixhawk 6X or Holybro Kakute H7 running PX4 / ArduPilot / Betaflight — handles the four ESC PWM/DShot outputs plus IMU loop at 1–8 kHz. The inner-loop rate-controller PID runs at 1–8 kHz; the outer attitude and position loops at 100–400 Hz; this rate hierarchy is what allows a flying quadrotor to be stable on the highly under-damped multirotor dynamics.

Cross-checks before committing to parts. (1) Disc loading T / A_disc — if it exceeds ~100 N/m² the prop is overloaded and efficiency drops sharply; for this build 4 × 2.94 N / (4 × π · 0.114²) = 18 N/m², excellent. (2) Battery C-rate — 4S 5000 mAh @ peak 25 A per motor × 4 motors = 100 A burst → 20 C; needs a pack rated ≥ 25 C continuous to avoid voltage sag faulting the flight controller. (3) Motor temperature after a 10-min hover with no airflow margin — motor case temperature can hit 70–90 °C; if the lab acceptance hover-test exceeds 100 °C either de-rate or step up to MN3510 or MN3515 frame.

Example D — Humanoid hip-pitch quasi-direct-drive joint

A 12 kg humanoid leg, total leg + torso mass 20 kg supported on one hip during single-stance walking, leg length 0.6 m. The hip-pitch joint must (a) hold the body weight statically with the leg horizontal (worst case), and (b) accelerate the leg through swing phase at high bandwidth.

Static gravity torque: τ_static = m_above · g · L_cog = 12 · 9.81 · 0.3 = 35 N·m (leg COG at half-length, body weight transferred at hip).

Swing-phase peak torque: Leg inertia about hip ≈ (1/3) · m_leg · L² = (1/3) · 12 · 0.36 = 1.44 kg·m². Bipedal walking at 1.2 m/s with stride period 0.6 s requires hip-pitch ω_peak ≈ 6 rad/s and α_peak ≈ 60 rad/s². So τ_swing = J · α + small gravity contribution ≈ 1.44 · 60 + 20 ≈ 110 N·m peak. (Note the swing-phase torque is much larger than the static-stance gravity torque — the joint sizing is dominated by dynamic events, not statics.)

Backdrivability requirement. For dynamic locomotion the leg must absorb impact (heel strike at 1–2 m/s, peak ground reaction force ~ 2 × body weight). A high-ratio gearbox would reflect this impact back through the gear teeth as a destructive shock; the design tradition for dynamic legged robots is QDD.

QDD sizing. Pick a 9:1 single-stage planetary. Required motor-side peak torque: 110 / (9 · 0.92) = 13.3 N·m peak. Required motor-side peak speed: 6 · 9 = 54 rad/s = 515 rpm. Continuous torque (long-duration walking, ~60 W joint power): 60 / 6 = 10 N·m at output, or 1.2 N·m at motor.

Part: T-Motor AK80-9. 80 mm OD QDD module; integrated motor + 9:1 planetary + driver + CAN encoder; rated 18 N·m peak / 9 N·m nominal / 24 N·m absolute-max-burst at output, mass 485 g, peak power 250 W. Pair with a Moteus r4.11 controller running custom firmware (or use the integrated CubeMars driver). CAN-FD at 5 Mbps; control loop runs at 1–2 kHz from the leg’s onboard computer.

Reality check: the 18 N·m peak of the AK80-9 is well below the 110 N·m needed. Either step up to T-Motor AK10-9 (65 N·m peak) or accept a slower walk. This is the consistent lesson of QDD sizing: even “large” QDD modules struggle with full-scale humanoid hip-pitch torques, which is why Boston Dynamics Atlas and the Tesla Optimus use hydraulic + ball-screw + cycloidal hybrid drivetrains rather than pure QDD for the largest joints.

4. Design heuristics

BLDC vs stepper for robotics

  • BLDC wins for continuous motion, dynamic torque control, force/impedance control, high efficiency, and high speed range. The torque-speed curve is flat (constant torque to base speed, constant power above). With FOC the torque ripple is < 5 %. Cost is dominated by the driver, not the motor.
  • Stepper wins where you want open-loop indexing, no encoder, cheap controller (Trinamic TMC2208 driver is < $5 in volume), and torque is needed mostly at low speed. Torque collapses above 500–1000 rpm (depends on frame size, voltage headroom, and bus inductance). Closed-loop steppers (StallGuard, encoder feedback) recover the missed-step problem but at that point a small BLDC is usually a better choice.
  • Rule: use a stepper for cost-sensitive open-loop positioning (3D printer, camera slider, pipettor). Use BLDC for anything moving fast, smoothly, or under force control.

Frameless / kit motors

Frameless motors (RoboDrive ILM, Allied Motion ThinGap, Kollmorgen KBM/TBM, Tecnotion TML/QTL, LCMT FRM) are sold as a separated rotor ring + stator ring + curve sheet — the robot designer integrates them into the joint body. Used where torque density matters and the joint geometry is custom. Pair with a harmonic drive (Harmonic Drive LLC / Leaderdrive / Laifual) or a high-precision cycloidal (Nabtesco RV, Sumitomo Cyclo). Standard in cobots from UR / Kinova / Franka and in surgical robots from Intuitive / CMR / Medtronic.

Direct-drive and QDD

Direct-drive (no gear): a few specialty applications — large telescope mounts, semiconductor wafer stages, some quadruped hips. Mostly impractical at typical robot scales because the motor would have to be the size of a dinner plate to produce useful torque without a gear.

Quasi-direct-drive (QDD, low-ratio 6:1–10:1 planetary): the defining innovation of modern legged robots. By combining a large-diameter low-KV BLDC (which is already torque-dense) with a tiny gear reduction, you get:

  • enough torque (20–80 N·m at the joint) for dynamic locomotion
  • enough speed (10–40 rad/s) for fast leg motion
  • backdrivability — you can push the joint by hand because the gear ratio is low enough that motor cogging + reflected inertia are tolerable
  • proprioceptive torque sensing — measure motor current and back-compute joint torque, no dedicated torque sensor needed

This is what MIT Cheetah, Unitree, Boston Dynamics Spot (in the legs), and ANYmal are built on. Reference parts: MIT Mini Cheetah motor (open-source design), MJBots qdd100, T-Motor AK-series (AK60, AK70, AK80, AK10-9), Unitree A1 (a rebranded T-Motor variant), Tinymovr Alpha.

Geared servo (smart servo)

Plug-and-play: Robotis Dynamixel (AX/MX/X-series/Pro/H), Hebi X5/X8, Lynxmotion LSS, Maxon IDX. Pay 5–10× per N·m vs rolling your own and get cleared firmware, a known bus protocol (RS-485 or CAN), and an SDK. Choose this for: research prototypes where time matters, education, low-volume robots where engineering hours dominate parts cost, and humanoid research platforms (Robotis OP3 uses 20 × MX-28, Open Dynamic Robot uses 4 × Dynamixel-Pro per leg).

Gearbox choice within the actuator

The motor cannot be sized without the gearbox, because the motor’s natural torque-speed envelope rarely matches the joint’s required envelope. Robotic-joint gearboxes fall into four families:

  • Planetary (ratios 3:1 to 100:1 in two stages; backlash 3–20 arcmin; efficiency 85–95 % per stage). Maxon GP, Apex Dynamics, Neugart, Wittenstein cyber. The default low-cost choice for cobot wrists, mobile-robot wheels, and any joint where 5–10 arcmin backlash is acceptable.
  • Harmonic / strain-wave (ratios 30:1 to 320:1 in a single stage; near-zero backlash 0.5–1.5 arcmin; efficiency 60–80 %). Harmonic Drive LLC (CSF, CSG, SHG), Leaderdrive, Laifual, Olflex. Standard for cobot joints 1–4 where zero backlash matters and the joint is space-constrained.
  • Cycloidal (RV reducers; ratios 30:1 to 200:1; backlash 1–3 arcmin; efficiency 70–85 %; very high shock-load capacity). Nabtesco RV, Sumitomo Cyclo, Spinea TwinSpin. The standard for the inner joints (waist, shoulder) of industrial 6-axis arms ≥ 10 kg payload — Fanuc, ABB, KUKA, Yaskawa all use RV reducers in joints 1–3.
  • Spur / worm / belt / cable (custom ratios, varying backlash, simple). Worm gives high ratio + self-locking but low efficiency (~50 %). Cable drives (e.g., the Stanford WAM arm, surgical robotics) give near-zero friction and inertia at cost of stretch and mechanical complexity.

The reflected inertia at the motor scales as J_load / N² (where N is the gear ratio), so a 100:1 gearbox makes the load inertia look 10 000× smaller from the motor’s point of view — wonderful for control but it makes the motor + gear assembly un-backdrivable (you can’t push the joint by hand). This is the design tension that QDD resolves by using a deliberately low ratio.

Driver topology and PWM frequency

A three-phase BLDC driver is six MOSFETs (or IGBTs at higher power) arranged as three half-bridges, gated by a three-phase gate driver IC (TI DRV8323, ST L6234/L6398, Allegro A89306). PWM frequency choice:

  • Low PWM (8–20 kHz) — efficient (low switching loss), but audible — the motor whines. Acceptable for industrial enclosed environments.
  • High PWM (20–60 kHz) — silent (above hearing), slightly higher switching loss, requires faster gate drivers and lower-inductance motor windings (high-frequency current ripple is bigger if inductance is too high).
  • Ultrasonic PWM (≥ 25 kHz) is the silent-cobot standard; UR robots run their drivers in this band.

For QDD actuators with very-low-inductance motors (typical 50–200 µH phase-to-phase), PWM ≥ 40 kHz is mandatory or current ripple exceeds 30 % of average and torque ripple becomes objectionable.

Continuous-duty derating

A continuous torque rating from a datasheet assumes 25 °C ambient with the specified mounting flange — often a generous aluminium heat sink. Real robotics enclosures rarely match. Heuristics:

  • Open-air indoor cobot, 25 °C ambient, aluminium joint housing: derate to 80 % of catalogue continuous.
  • Closed-housing mobile robot or drone arm: 65 %.
  • Hot industrial cell at 40 °C ambient: 50 %.
  • Space / vacuum with radiative cooling only: 30 % — and you may need active thermal management of the joint.

Peak / inrush capability

Pick a driver with 2–3× the continuous current capability of the motor, because robotic acceleration peaks are short (10–100 ms) and well within the motor’s thermal time constant. A motor rated 5 A continuous with a 15 A peak rating wants a driver good for 15 A momentarily; a 5 A driver will current-limit and the robot will under-perform on transients without an obvious failure mode.

Motor selection workflow (one-page recipe)

  1. From the kinematic model, compute joint torque vs. time for the worst-case trajectory: τ(t) and ω(t) over a representative mission cycle.
  2. From τ(t) compute RMS continuous torque and peak torque; from ω(t) compute peak speed.
  3. Pick a trial gear ratio N such that motor peak speed (N · ω_joint_peak) is 50–80 % of the motor’s no-load speed at the chosen bus voltage. This gives torque-headroom for acceleration.
  4. Reflect joint torques to motor side: τ_motor = τ_joint / (N · η_gear). Match continuous and peak both.
  5. Pick a motor whose continuous torque exceeds reflected continuous τ with a derating factor (see “Continuous-duty derating” below).
  6. Compute reflected inertia J_load / N² and verify that the closed-loop control bandwidth target is achievable given the motor’s electrical (L/R) and mechanical (τ_m) time constants. Bandwidth target typically 100–500 Hz for arm joints, 1–5 kHz for FOC inner loop.
  7. Pick a driver with continuous I ≥ τ_motor_cont / K_T plus 30 % headroom, and peak I ≥ τ_motor_peak / K_T.
  8. Pick an encoder whose resolution × N exceeds the joint accuracy target by 4× (Nyquist + control margin).
  9. Pick a bus capacitor sized to absorb peak regen energy: C ≥ E_regen · 2 / (V_max² − V_nom²), with E_regen estimated from peak J_load · ω² / 2.
  10. Estimate joint thermal: compute average i² · R over the mission cycle; check against motor’s R_th and ambient. If marginal, add cooling fins or step up frame size.

Specific torque (K_T per unit mass)

A useful figure of merit for comparing motors:

  • Hobby BLDC: 3–6 N·m/kg
  • Medium-frame BLDC (Maxon EC, T-Motor U-series): 8–12 N·m/kg
  • Frameless brushless with high-energy NdFeB magnets: 20–30 N·m/kg
  • High-end aerospace / racing motors (Emrax, YASA): 40–60 N·m/kg

Encoder pairing

  • General mobile robot wheels: 1000–5000 lines incremental on the motor shaft is plenty.
  • Cobot / industrial arm joint: ≥ 17-bit (131 072 counts/rev) absolute on the motor shaft, ideally a second 19-bit (524 288 counts/rev) absolute on the output shaft (post-gear) for safety and accuracy.
  • High-precision (semiconductor, surgical): 23-bit (8.4 M counts/rev) absolute, optical with index reference.
  • For functional safety (ISO 10218, IEC 61508 SIL 2/3): dual independent encoders with cross-checked diagnostics. Common combos: optical + magnetic, or two magnetic on different ICs.

Force / torque feedback strategies

A robotic joint can sense its own output torque four ways, in increasing cost and accuracy:

  1. Motor-current estimation (proprioceptive). Compute τ = K_T · i_q from the FOC q-axis current. Accuracy 5–20 % of full scale depending on gear friction modelling. Cost: free. Used by Boston Dynamics Spot, MIT Cheetah, UR robots.
  2. Series-elastic actuator (SEA). Place a known-stiffness spring between motor output and joint output; measure spring deflection with an encoder → τ = k_spring · Δθ. Bandwidth-limited (~10–30 Hz) but mechanically robust and intrinsically compliant. Used in Rethink Baxter, NASA Valkyrie, the original Honda ASIMO. The trade is reduced control bandwidth.
  3. Strain-gauge joint torque sensor. Dedicated transducer (ATI Industrial Automation, BOTA, Sensodrive) placed at the joint output; 0.1–0.5 % full-scale accuracy. Used in Franka Emika Panda (every joint), KUKA LBR iiwa, DLR LWR series. Adds 50–200 g and several hundred dollars per joint.
  4. End-effector 6-axis force/torque sensor. ATI Mini40 / Nano17, Robotiq FT 300, OnRobot HEX-E/H. Measures wrench at the tool flange directly; standard for assembly and surface-following tasks; doesn’t give joint-level torque.

Bus and protocol choice

  • PWM / servo pulse (1–2 ms, 50–333 Hz): hobby; one wire per motor; legacy R/C servo.
  • DShot (digital, 150 / 300 / 600 / 1200 kbps; bidirectional variants): drones; replaces PWM with a serial protocol that’s noise-immune and supports telemetry.
  • RS-485 half-duplex with TTL framing: Dynamixel Protocol 1.0 / 2.0; daisy-chain up to ~250 servos; bandwidth-limited (max 4 Mbps).
  • CAN 2.0 / CAN-FD: 1 / 8 Mbps; the standard for QDD actuators (Moteus, Tinymovr) and industrial drives. CAN-FD’s 64-byte payload + 8 Mbps gives enough bandwidth for high-rate joint control.
  • EtherCAT: 100 Mbps; deterministic sub-microsecond synchronisation across many drives; the industrial-cobot standard (Synapticon, Elmo Gold, Beckhoff, ABB OmniCore).
  • EtherNet/IP, PROFINET, Sercos III: alternative industrial fieldbuses, vendor-locked.
  • UDP over Gigabit Ethernet: Hebi X-series; flexible but soft-real-time only.

For a research-grade cobot, EtherCAT is the default; for a hobby legged robot, CAN-FD with the Moteus driver is the default; for drones, DShot.

5. Components & sourcing

Motor brands targeted at robotics

BrandCountrySpecialityTypical robotics use
MaxonSwitzerlandPrecision PMDC, BLDC, frameless, gearboxCobots, surgical, prosthetics, space; gold standard
FaulhaberGermanyBrushed slotless, BLDC, microSurgical tools, micro-grippers, lab automation
PortescapSwitzerland/USASlotless BLDC, can-stack steppersMedical pumps, small precision motion
Allied Motion (Mavilor, ThinGap, RoboDrive)USA / DE / NLFrameless brushless, slotlessCobot joints, defence, aerospace
Kollmorgen / Regal RexnordUSAIndustrial servo AKM, KBM, TBM framelessIndustrial arms, AGV drive
TecnotionNetherlandsLinear motors + frameless QTL/TMLHigh-dynamic Cartesian, frameless joints
LCMTItalyFrameless brushless, torque motorsRobotic joints, machine tools
T-MotorChinaDrone + e-mobility BLDC, QDD AK-seriesDrones, legged robots, e-foils
SunnySky / iFlight / EMAX / HobbywingChinaDrone BLDC + ESCHobby/research drones, FPV
Robotis DynamixelSouth KoreaSmart servosHumanoid research, cobots, education
Hebi RoboticsUSAModular smart actuatorsResearch, prototyping
MJBotsUSAOpen-design QDD + Moteus driverLegged robotics, research

Smart servo families

SeriesManufacturerBusPeak τ$ ea (2024)
Dynamixel AX-12ARobotisTTL half-duplex1.5 N·m~$45
Dynamixel MX-28RobotisRS-4852.5 N·m~$250
Dynamixel XM430-W350RobotisRS-4854.1 N·m~$300
Dynamixel XH540-W270RobotisRS-4859.9 N·m~$700
Dynamixel Pro H54-200-S500RobotisRS-485 / EtherCAT44.7 N·m~$4500
Hebi X5-9HebiUDP over Ethernet9 N·m~$1500
Hebi X8-9HebiUDP18 N·m~$2500
Lynxmotion LSS HT1LynxmotionTTL3.4 N·m~$140

QDD modular actuators

ModulePeak τMassRatioBus
MJBots qdd100 beta317 N·m peak / 6 N·m cont510 g6:1CAN-FD via Moteus r4.11
T-Motor AK60-69 N·m365 g6:1CAN
T-Motor AK70-1024 N·m521 g10:1CAN
T-Motor AK80-918 N·m485 g9:1CAN
T-Motor AK10-965 N·m960 g9:1CAN
Unitree A1 motor33.5 N·m~530 g6:1RS-485
Tinymovr Alphaapplication-specific~250 gdirect-driveCAN / UAVCAN

BLDC drivers and motor-control silicon

  • Maxon ESCON 50/5, 70/10, 120/10 — closed-loop current + velocity, analog or RS-232/USB setpoint. Pairs with any Maxon EC or DC motor. EPOS4 family adds CAN/EtherCAT.
  • Elmo Motion — Gold Twitter (G-TWI), Whistle, Solo Cor; EtherCAT and CAN; the high-end industrial choice when servo loop performance matters.
  • Synapticon SOMANET — compact EtherCAT BLDC drives engineered for collaborative robot joints; popular with cobot integrators.
  • Copley Controls Accelnet — high-performance servo amplifiers, EtherCAT/CAN.
  • ODrive (ODrive S1, Pro, Micro) — open-source FOC; one driver for two motors on classic 3.6, single on S1; CAN-FD, USB. Popular in research robotics for being open-firmware.
  • VESC — Benjamin Vedder’s open-source FOC firmware + reference hardware (VESC 6, Tronic, MakerX); STM32F4 base, CAN, popular in e-skateboards and DIY robotics.
  • MJBots Moteus — STM32G4 + DRV8323 FOC controller designed for QDD; CAN-FD, integrated absolute encoder; the de facto controller for hobbyist legged robots.
  • Tinymovr — open-source CAN servo drive for small-frame BLDC.
  • SimpleFOC — Arduino library + shield ecosystem; gentle entry point to FOC.
  • Trinamic / ADI TMC4671 (FOC SoC, full sensor-front-end + commutation engine), TMC2160 + TMC4361 combo (stepper + closed-loop motion), TMC2209/2240/5160 (stepper drivers).
  • TI DRV8323 (3-phase gate driver) + InstaSPIN-FOC firmware on C2000 (TMS320F28379D), or DRV8353; LaunchPad evaluation boards.
  • ST STM32 X-CUBE-MCSDK (Motor Control Software Development Kit) + IHM07M1 / IHM08M1 / IHM16M1 expansion boards.
  • Microchip dsPIC33CK / dsPIC33EP motor control families + free motor-control reference designs.

Common motor + driver pairings used in real robots

  • Maxon EC-i 40 + GP 42 C planetary 14:1 + ESCON 50/5 + ENX 16 EASY 1024 encoder — canonical mobile-robot wheel drive (KUKA youBot wheels are very close to this, as are many AMR/AGV platforms from MiR / Boston Dynamics Stretch).
  • Maxon EC 45 flat + ESCON Module 50/5 + AS5048 magnetic absolute — pan-tilt camera turret; gimbal mounts for outdoor inspection robots.
  • Faulhaber 2237 BX4 + 23/1 planetary + MC 5004 P STO controller — surgical robot finger joints, prosthetic finger actuators.
  • RoboDrive ILM 70x18 + Harmonic CSF-25-100 + Synapticon SOMANET + Renishaw Aksim2 19-bit — research cobot joint (typical Franka-style integration).
  • T-Motor MN3508-29 KV700 + T-Motor F35A ESC — research drone propulsion.
  • T-Motor AK80-9 + Moteus r4.11 + integrated AS5047 encoder — open-source legged-robot leg joint.
  • MJBots qdd100 beta3 + pi3hat CAN-FD adapter — Stanford Pupper, MIT Cheetah-inspired hobby quadrupeds.
  • Trinamic TMC2209 + LDO NEMA 17 + magnetic encoder mod — modern 3D printer extruder with closed-loop stepper feedback.
  • Dynamixel XH540-W270 daisy-chain via U2D2 — Robotis OP3 walking biped; ROBOTIS-OP humanoid teaching platform.
  • Kollmorgen TBM frameless + AKD-N decentralised drive + Renishaw RESOLUTE — large industrial cobots, semiconductor wafer-handling robots.

Where to buy (2024–2026 distributors)

  • Maxon: direct (US: Maxon Motor USA Inc., Taunton MA), or via distributors (PI, Servo2Go).
  • Faulhaber / Portescap / Allied Motion: direct + Servo2Go + Motion Industries.
  • T-Motor / SunnySky / Hobbywing: Banggood, GetFPV, RaceDayQuads, T-Motor direct.
  • Dynamixel: ROBOTIS direct, Trossen Robotics, RobotShop.
  • MJBots: direct via mjbots.com only.
  • Trinamic / Analog Devices: Mouser, Digi-Key, Arrow.
  • Encoders: Renishaw direct, RLS via distributors, AMS-Osram via Mouser/Digi-Key.
  • Harmonic Drive: Harmonic Drive LLC (US), Harmonic Drive SE (EU); long lead times (12–20 weeks for non-stock SKUs).
  • Nabtesco RV reducers: Nabtesco USA, Misumi, Servo2Go.
  • ODrive / VESC / Tinymovr: direct from their respective shops.

Steppers

NEMA frame sizes (faceplate width in tenths of an inch — NEMA 17 = 1.7” = 43.2 mm):

SizeFrameTypical holding τCommon use
NEMA 820 mm0.05 N·mMicro-positioning, lab
NEMA 1128 mm0.10 N·m3D-printer extruders
NEMA 1435 mm0.18 N·mCompact CNC
NEMA 1743 mm0.40 N·m3D-printer axes (universal)
NEMA 2357 mm1.9 N·mHobby CNC routers, plotters
NEMA 3486 mm8 N·mIndustrial CNC, plasma cutters
NEMA 42110 mm30 N·mHeavy CNC, machine tools

Brands: Trinamic + ANK + ALPS + Nanotec + Faulhaber + LDO + Moons’ + Sanyo Denki + Lin Engineering. Drivers: TMC2208 / TMC2209 / TMC2240 / TMC5160 (Trinamic, with SilentStepStick variants), Leadshine MX / DM / EM series (industrial), Geckodrive (legacy / robust hobby).

6. Reference data

Typical control-loop hierarchy in a robotic joint

LoopRateImplemented whereNotes
FOC current (d, q)10–40 kHzMotor driver MCUInnermost; sets torque
Velocity1–10 kHzMotor driver MCUProvides damping
Position (joint)1–4 kHzMotor driver or joint controllerCascaded outside velocity
Torque / impedance500–2000 HzJoint or robot controllerOptional, for compliant control
Trajectory / planning100–1000 HzMain robot computerSends setpoints over bus
Application / task10–100 HzMain robot computerOuter loops, sensor fusion

The rate-of-ten rule: each outer loop should run no faster than ~1/10th the bandwidth of the inner loop it commands, or the cascade is unstable.

Bus voltage vs. motor speed (rule of thumb)

For a BLDC of given KV (rpm/V), the no-load speed at bus voltage V is ω_NL = KV · V. Practical robotic operating speeds are 50–80 % of ω_NL to leave headroom for torque. Examples:

  • T-Motor MN3508 KV700 @ 4S (14.8 V) → ω_NL = 10 360 rpm, operating range 5000–8000 rpm.
  • Maxon EC-i 40 (K_e ≈ 8.0 mV·s/rad equivalent KV ≈ 1190 rpm/V) @ 36 V → ω_NL = 6500 rpm, operating range 3500–5000 rpm.
  • AK80-9 with built-in 9:1 gear: motor KV ≈ 100, @ 24 V → motor ω_NL = 2400 rpm = 251 rad/s; output ω_NL = 28 rad/s.

Maxon EC-i flat-class BLDC, representative specs

ModelOuter ØP_contK_Tτ_contτ_stallω_no-load
EC-i 3030 mm30 W12.5 mN·m/A56 mN·m1100 mN·m9000 rpm
EC-i 4040 mm70 W36.9 mN·m/A122 mN·m4100 mN·m6500 rpm
EC-i 5252 mm180 W81.8 mN·m/A421 mN·m9000 mN·m6000 rpm
EC-i 7070 mm400 W94.6 mN·m/A970 mN·m21 N·m5400 rpm

Source: Maxon catalogue 2024-Q3, EC-i family datasheet rev 12.

Gearbox families for robotic joints

FamilyRatio rangeBacklashEfficiencyStiffnessShockTypical use
Planetary (single stage)3:1 – 10:16–20 arcmin90–95 %HighModerateMobile robot wheels, drone gimbals, QDD
Planetary (multi-stage)up to 1000:19–30 arcmin80–90 %/stageHighModerateCobot wrists, mid-load joints
Harmonic / strain-wave30:1 – 320:10.5–1.5 arcmin60–80 %Very highLowCobot proximal joints, surgical robots
Cycloidal (RV reducer)30:1 – 200:11–3 arcmin70–85 %Very highVery highIndustrial 6-axis arm joints 1–3
Spur / pinion1:1 – 5:15–20 arcmin90–95 %HighHighDifferential drives, hobby robotics
Worm5:1 – 100:110–30 arcmin30–80 %High (self-locking)ModerateSlow turret drives, prosthetics
Belt1:1 – 5:1low (compliant)90–98 %Moderate (elastic)ExcellentRobot arms (proximal-to-distal coupling), 3D printer
Cable / capstan1:1 – 10:1near zero (compliant)90–98 %ModerateExcellentWAM arm, surgical robotics

Smart-servo $ per N·m

Servo$ peak / peak τ
Dynamixel AX-12A$30 / N·m
Dynamixel XM430$73 / N·m
Dynamixel Pro H54$100 / N·m
Hebi X8-9$138 / N·m
Maxon EC-i 40 + GP 42 + ESCON (DIY)~$15 / N·m at the joint output

Smart servos cost 5–10× more per N·m than a comparable DIY motor + gear + driver. You pay for integration time and firmware.

Encoder technologies for robotic joints

TechnologyExampleResolutionAbsolute?StrengthsWeaknesses
Optical incrementalHEDS, Avago AEDR100–10 000 linesNoCheap, fastLoses position on power-down; debris sensitive
Optical absoluteRenishaw Resolute, RLS Aksim218–32 bitYesHighest accuracy / repeatabilityExpensive (5000); needs clean install
Magnetic absoluteAMS AS5048, RLS Orbis, iC-Haus iC-PMx14–18 bitYesCheap, robust to debris, oil-tolerantLower accuracy; vulnerable to nearby magnets
Inductive absoluteRLS RLM, Renesas IPS14–22 bitYesTolerant to ferrous debris, no magnetNewer; fewer suppliers
CapacitiveHeidenhain LIDA, CUI AMT12–16 bitYesNo magnet, low costSensitive to contamination on the disc
ResolverTamagawa Smartsyn, LTNanalog → 12–16 bit after RDCYesSurvives extreme heat / radiation / vibrationBulky; needs RDC IC; signal sensitive

Common BLDC driver families (2024–2025 snapshot)

DriverBusContinuous IPeak IVbusNotes
ODrive S1CAN-FD, USB40 A80 A12–58 VOpen-source FOC, single motor, encoder front-end built in
ODrive 3.6 (legacy)CAN, USB60 A120 A12–56 VDual motor on one board
MJBots Moteus r4.11CAN-FD15 A100 A10–54 VDesigned for QDD; AS5047P magnetic encoder onboard
VESC 6 MkVICAN, USB, UART80 A200 A8–60 Ve-skateboard pedigree; popular DIY robotics
Tinymovr AlphaCAN, UAVCAN40 A80 A10–58 VCompact, open-source
Maxon ESCON 50/5Analog, USB5 A15 A10–50 VIndustrial servo amplifier, closed-loop velocity
Maxon EPOS4 24/1.5EtherCAT, CAN, USB1.5 A5 A10–24 VCompact positioning controller
Maxon EPOS4 50/15EtherCAT, CAN, USB15 A45 A10–50 VMid-range positioning controller
Elmo Gold Twitter G-TWI-15EtherCAT, CAN15 A30 A8–95 VHigh-end industrial servo
Synapticon SOMANET Node 400EtherCAT7 A18 A10–48 VCompact cobot-joint drive
Copley Accelnet PlusEtherCAT, CAN6–30 A20–60 A14–90 VHigh-performance servo, industrial
Trinamic TMC4671 + powerSPI, CANdepends on stagedepends on stage8–80 VFull FOC SoC, very flexible
TI BOOSTXL-DRV8323RS + LPlocal control15 A60 A6–54 VReference design + InstaSPIN-FOC firmware

Representative motor specs of named robots

RobotJoint actuatorPeak τ at outputSensing
Universal Robots UR5eFrameless BLDC + harmonic 100:1150 N·m (joint 1)Dual absolute encoders + current sensing for force est.
Franka Emika PandaCustom BLDC + harmonic87 N·m (joint 1)Strain-gauge torque sensors at every joint
ABB IRB 1200Servo BLDC + RV reducer~150 N·mSingle absolute encoder, model-based force
Boston Dynamics SpotCustom BLDC + planetary~45 N·m hipProprioceptive (motor current)
MIT Mini CheetahCustom 70 mm BLDC + 6:1 planetary17 N·m hipProprioceptive
Unitree A1T-Motor-derived BLDC + 6:1 planetary33.5 N·mProprioceptive
Robotis OP3Dynamixel MX-28 / XH5404–10 N·m per jointInternal contactless absolute encoder
DJI Mavic 3DJI proprietary 2807 + ESChover thrust ~ 8 N eachNone (no joint feedback needed)

7. Failure modes & debugging

  • Thermal demagnetisation of NdFeB magnets. Standard NdFeB (grade N42, N48) loses irreversible magnetisation above 80 °C; high-temp grades (UH, EH, AH) survive 180 °C+. A motor that has been overheated may show 10–30 % torque-constant loss permanently, presenting as “the joint is suddenly weaker for the same current.” Fix: use higher temperature grade or actively cool the joint.
  • Cogging torque in BLDC at very low speeds is the static torque ripple from rotor-magnet to stator-tooth alignment. Mitigations: skewed magnets, fractional-slot / concentrated-winding designs (e.g., 9-slot / 10-pole), or a high-bandwidth FOC current loop (≥ 10 kHz) that injects a counter-ripple compensating waveform.
  • Hall vs encoder commutation. Three Hall sensors give 60° resolution — sufficient for 6-step (“trapezoidal”) commutation but not for sinusoidal FOC. A motor commutated by Halls alone has 13.4 % torque ripple at the commutation transitions. For FOC you need an encoder with rotor-aligned index pulse (or a one-time alignment routine that estimates the electrical zero).
  • Encoder slip. A loose set-screw on a magnetic encoder hub, or debris on an optical disc, causes the encoder to lose absolute reference. Symptoms: gradual or sudden drift between commanded and actual position; FOC commutation goes out of phase and the motor stalls or runs noisy. Periodic homing to a hard-stop or a Hall-based reference defeats this.
  • Driver electrical noise into encoder lines. A 24 V H-bridge switching at 30 kHz radiates broadband EMI that couples into the encoder cable. Symptoms: random encoder counts, motor “twitching” while idle. Mitigations: RS-422 differential encoder signals (BiSS-C, EnDat 2.2, SSI), shielded twisted pair with shield grounded only at the controller end, ferrite beads on the encoder cable, separation from power cables.
  • Bus voltage sag. A mobile robot drawing peak current at acceleration drops the battery bus voltage by I · R_internal. If the sag is below the driver’s brownout threshold the motor stops mid-move and the controller faults. Fix: battery sized for the peak current, or a bus capacitor (1000–10 000 µF) right at the driver.
  • Regenerative braking. A motor decelerating an inertial load pushes energy back into the bus. Lithium batteries can absorb a few amps of regen for short bursts; lead-acid happily absorbs lots; bench power supplies refuse to and will fault or pop their over-voltage protection. Industrial drives use a brake resistor (Elmo BRP, Copley BR) switched in by the drive when bus voltage exceeds threshold. A drone in steep descent has the same regen issue; ESCs typically dump it to motor windings as heat.
  • VFD-induced shaft currents and bearing fluting. High-dv/dt switching (especially with SiC inverters) induces common-mode voltage on the rotor shaft; if it exceeds bearing-grease breakdown (~10 V) it sparks across the rolling elements and erodes microscopic pits — a phenomenon called “fluting.” Mitigation: insulated bearings (SKF INSOCOAT), shaft grounding brushes (Aegis SGR), and dv/dt filters between inverter and motor. Affects industrial servos and large traction motors; rare in small robotics motors.
  • Stepper missed steps under load. A stepper running open-loop near its torque limit will skip electrical steps; the rotor lags the field by > 1 step and the field has already moved on. The motor keeps running but its commanded position is wrong. Detect with a low-cost encoder + position-error check, or use a closed-loop stepper (Trinamic StallGuard, Leadshine HBS, smart-stepper drivers).
  • Gearbox backlash on reversal. Most painful when implementing joint-level force control: the joint moves by the backlash window (typically 0.5–5 arcmin for harmonic, 5–20 arcmin for planetary, 1–3 arcmin for cycloidal) on direction reversal, during which there is no torque transmission. Solutions: harmonic drives (effectively zero backlash), preloaded planetaries, or end-point sensing for the critical positioning move.
  • Resolver excitation drift. Industrial servos with resolvers can lose calibration if the excitation amplitude or frequency drifts on the resolver-to-digital converter (RDC). Symptom: slowly growing position offset. Fix: re-zero the RDC, or upgrade to a digital protocol (BiSS-C, EnDat).
  • PWM-induced winding insulation breakdown. Long motor cables in industrial settings produce voltage reflections that can double the bus voltage at the motor terminals; over time this stresses Class F insulation and causes early winding failure. Mitigation: dv/dt filters or sine-wave filters between drive and motor for cable runs > 10 m.
  • FOC misalignment after motor swap. Each motor instance has a slightly different electrical-zero offset relative to the encoder index. After replacing a motor (or encoder) the FOC firmware needs a one-time alignment routine — usually a low-current sweep through the electrical cycle while logging encoder counts — to re-learn this offset. Skip this step and the new motor will run at 30–70 % of rated torque, draw extra current, and run hot.
  • Capacitor inrush damages bus contactor / fuse. A driver with a large DC-link capacitor (1000–10 000 µF) draws an enormous instantaneous current at power-on, welding contactors closed and blowing fuses. Mitigation: a pre-charge resistor + bypass contactor sequence, an NTC inrush limiter, or a soft-start circuit. Industrial drives have this built in; hobby ODrive / VESC builds often don’t and the first power-on blows the bench supply.
  • CAN bus storms. Twenty Moteus or AK-series actuators on one CAN bus, each sending high-rate state telemetry, can saturate a 1 Mbps CAN bus at high control rates. Symptoms: missed control packets, joints jittering or briefly going to zero torque. Fix: CAN-FD at 5–8 Mbps, split the bus into two segments, or reduce telemetry rate.
  • Stiction on first move after long idle. Grease in a planetary gearbox can settle and migrate; the first move after hours-to-days of idle takes 20–50 % more torque to break free than the steady-state running torque. Plan for this in mission-critical applications where the first move must succeed (e.g., satellite deployment mechanisms): either characterise stiction explicitly or add a low-frequency “exercise” routine.

8. Case studies

Universal Robots UR5e joint actuator (2018, refined 2020)

UR5e is a 5 kg-payload collaborative arm; each of six joints uses a frameless brushless motor + harmonic drive + a proprietary servo drive integrated directly into the joint. Joint 1 (shoulder) uses approximately a 60 mm OD frameless BLDC + Harmonic Drive CSD-25 (ratio 100:1, ~67 N·m rated, ~150 N·m peak with the assembly’s actual output torque rating). Two encoders per joint: a 19-bit absolute on the output (joint position for the kinematic chain) and a 17-bit absolute on the motor shaft (for FOC commutation and high-bandwidth velocity feedback). Force-sensing is model-based: motor current + joint dynamics model → estimated external force at the TCP, with a typical detection threshold of 5 N — sufficient for ISO/TS 15066 collaborative operation without expensive joint-torque sensors. The control loop runs at 1 kHz; the FOC current loop runs locally at 10–20 kHz in the joint MCU. Bus: real-time EtherCAT or proprietary differential bus depending on generation.

MIT Mini Cheetah quasi-direct-drive actuator (Wensing/Wang/Bledt/Park/Katz/Kim/Pratt, IEEE T-RO 2017)

The defining design of modern legged-robot actuators. Each leg has three identical modular actuators consisting of a custom 70 mm-diameter low-KV BLDC (12 stator slots, 14 rotor poles, KV ≈ 100, custom wound by the lab) with a tiny 6:1 single-stage planetary. The whole module masses ~510 g and produces ~17 N·m peak at the output, with ω_max ≈ 40 rad/s. The key property is backdrivability: because the gear ratio is so low, the reflected motor inertia and cogging are small enough that you can push the leg by hand. This enables proprioceptive torque control — measure motor phase currents → infer joint torque without a dedicated joint torque sensor, with a bandwidth and resolution that approach a true torque sensor. The design was open-sourced and has been the template for Unitree A1 / Go1, Stanford Doggo, MJBots qdd100, Open Robotics’ Mini Pupper, and dozens of academic quadrupeds.

Robotis OP3 humanoid actuation (2017–present)

OP3 is a 0.51 m, ~3.5 kg open-platform humanoid widely used in RoboCup and educational robotics. Twenty joints, all driven by Dynamixel smart servos in a mix: 14 × MX-28T (head, arms, low-load leg joints) + 6 × XH540-W270 (high-load leg joints — knees and hips that bear body weight in single-stance phase). Each servo provides position, velocity, current, voltage, and temperature feedback over Protocol 2.0 RS-485 daisy-chain at 4 Mbps. The on-board Intel NUC runs ROS at 125 Hz; servo position commands stream to a U2D2 USB-to-RS485 bridge; servos run their own 4 kHz internal PID. This whole-of-actuator-as-a-service approach lets a research student have a walking biped in weeks instead of months — at the cost of substantially worse dynamic performance than custom QDD (the MX-28’s internal PID has a ~50 Hz bandwidth versus the ~500 Hz of a Moteus-driven QDD). Trade illustrated: integration time vs. control bandwidth.

DJI M30 drone propulsion (2022)

The DJI M30 is a 4 kg-class industrial drone with 4 × DJI proprietary 28xx-class brushless motors (~3508 stator class, low-KV for efficiency with the 10–13” propeller) and matching ESCs running DJI’s closed-source motor-control firmware. Each motor produces approximately 1500 g of thrust at full throttle with the stock prop, allowing hover at ~33 % throttle for a 4:1 thrust-to-weight ratio in light-payload configuration. The flight controller (DJI A3-derived, running at ~8 kHz inner-loop rate) commands each ESC over a high-speed serial link with sub-millisecond latency. Total continuous power at hover is ~600 W; flight time of 41 min comes from a TB30 13 930 mAh dual-pack at 24 V. The whole propulsion system illustrates the drone-specific design trade: very high power density (~2 kW/kg motor + ESC system), modest efficiency (~75 %), engineered for short-duty bursts rather than continuous-rated industrial use.

Debugging flowchart — “the joint won’t hold its commanded position”

  1. Is the motor energised? Check bus voltage at the driver terminals (not at the battery — voltage may sag under load).
  2. Does the FOC see a valid encoder signal? Connect the driver’s diagnostic UI; the rotor electrical angle should advance smoothly as you rotate the shaft by hand.
  3. Is the FOC commutation aligned? Run the driver’s “calibrate motor” routine. A mis-aligned FOC produces 30–70 % of expected torque.
  4. Are the current limits set correctly? Many ODrive / Moteus / VESC builds default to conservative current limits (e.g., 10 A) below what the motor can deliver.
  5. Is the encoder reading absolute position? A single-turn magnetic encoder loses track of full revolutions; if the joint is multi-turn the controller may believe the joint is somewhere it isn’t.
  6. Are gearbox set-screws / shaft couplings tight? A loose coupling slips under load and the joint backdrives unobserved.
  7. Is the controller’s gravity / friction model engaged? A pure position controller on a non-backdrivable joint will hold position via integral action, but a torque-mode joint needs explicit gravity compensation.
  8. Is thermal foldback active? Many drives quietly reduce current when winding temperature rises; the joint will hold initially and “go soft” after a few minutes.

Debugging flowchart — “the joint hums or whines but barely moves”

  1. Likely cause: FOC commutation 90° (electrical) out of phase. Recalibrate.
  2. Or: PWM frequency below winding inductance corner — current ripple too large. Lower PWM if inductance is high, raise PWM if inductance is low; check the manufacturer’s recommended PWM frequency.
  3. Or: encoder count direction is opposite to electrical phase order — motor “fights itself.” Swap any two phase leads, or invert encoder direction in firmware.
  4. Or: the motor is mechanically stuck (debris in gearbox, jammed cable harness). Free the shaft and re-test before assuming an electrical fault.

9. Cross-references

  • [[Robotics/kinematics-dh]] — Denavit–Hartenberg parameters; the kinematic frame in which motor torque becomes end-effector force.
  • [[Robotics/dynamics-rigid-body]] — joint-space and operational-space dynamics; the equations of motion that determine the τ vs. ω requirement at every joint (planned).
  • [[Robotics/pid-control]] — outer-loop controllers that take motor as the basic actuator; relates to FOC inner-loop tuning (planned).
  • [[Robotics/power-systems]] — battery / DC-bus sizing for the motor + driver stack (planned).
  • [[Robotics/comm-buses]] — CAN, CAN-FD, EtherCAT, RS-485; the bus connecting controllers to drivers (planned).
  • [[Engineering/electric-motors]] — theoretical companion; derivations of every equation used here.
  • [[Engineering/power-electronics]] — the H-bridges, three-phase inverters, and gate drivers that sit between bus and motor.
  • [[Engineering/bearings]] — motor bearings, fluting, INSOCOAT, shaft brushes.
  • [[Engineering/gears-power-transmission]] — harmonic drives, cycloidal, planetary; the gearbox half of the actuator.
  • [[Languages/Tier3/robotics-control]] — domain-specific languages and middlewares (ROS 2, URDF, MoveIt) that sit on top of motor control.

Bus voltage choice — practical defaults

Robot classBus voltageBattery chemistryNotes
Hobby / educational mobile7.4–12 V2S–3S Li-Po, NiMHEasy, safe, modest power
Research mobile / quadruped24–48 V6S–12S Li-Po, Li-IonStandard for AMR and legged robots
Industrial cobot48 V DCWall-powered + DC busUR / Franka / Kinova all run 48 V
Industrial 6-axis arm320–565 V DCRectified 3-phase mainsHigh-power industrial servos
Drone (5”)16.8 V (4S)Li-PoDShot ESC standard
Drone (10–15” cinema / industrial)25–50 V (6S–12S)Li-Po / Li-IonHeavy-lift, longer flight
Electric scooter / e-bike crossover36–72 VLi-IonField-weakening BLDC for speed range

The 48 V boundary matters: below 48 V is “extra-low voltage” (ELV) in IEC standards, allowing simpler safety qualification. Cobots cluster at 48 V deliberately to stay below this threshold.

Motor selection failure modes (recipe to avoid during sizing)

  • “Picked a motor that meets continuous torque, then discovered peak is 4× higher and the motor stalls on first acceleration.” → always compute peak from full mission cycle, not steady state.
  • “Picked a 100:1 harmonic drive because the gravity-static math suggested it; can’t move the joint fast enough for the task.” → check joint ω requirement first, then back out N.
  • “Picked a motor with great K_T but R is high; driver brownouts under load.” → check V = K_e · ω + i · R for the worst-case operating point.
  • “Picked a frameless motor and the integrator forgot to install Hall sensors.” → frameless motors typically don’t include any sensor; you must specify and integrate the encoder yourself.
  • “Picked a smart servo for cost reasons, integration time and control bandwidth turned out to be worse than discrete.” → if you’ll build > 50 of the robot, the discrete-motor solution amortises engineering time.

10. Citations

  • Krishnan, R. Permanent Magnet Synchronous and Brushless DC Motor Drives. CRC Press, 2010. ISBN 978-0824753849. The standard graduate reference for PMSM / BLDC drive design.
  • Hughes, A. and Drury, B. Electric Motors and Drives: Fundamentals, Types and Applications. 5th ed., Newnes, 2019. ISBN 978-0081026151. The most accessible practitioner’s reference for the full motor family taxonomy.
  • Wensing, P. M., Wang, A., Bledt, G., Park, J., Katz, B., Kim, S., and Pratt, J. E. “Proprioceptive Actuator Design in the MIT Cheetah: Impact Mitigation and High-Bandwidth Physical Interaction for Dynamic Legged Robots.” IEEE Transactions on Robotics, 33(3):509–522, June 2017. DOI 10.1109/TRO.2016.2640183.
  • Seok, S., Wang, A., Chuah, M. Y. M., Otten, D., Lang, J., and Kim, S. “Design Principles for Highly Efficient Quadrupeds and Implementation on the MIT Cheetah Robot.” ICRA 2013. DOI 10.1109/ICRA.2013.6631038.
  • Hopkins, M. A., Hereid, A., Ressler, R., Holley, D., and Pratt, J. “Proprioceptive Joint Torque Sensing for Dynamic Walking Robots.” Humanoids 2015.
  • Maxon Academy: “Selection of high precision microdrives.” Free white paper, Maxon Group, 2022.
  • Maxon catalogue 2024-Q3: EC-i family datasheet rev 12; ESCON 50/5 datasheet rev 7; GP 42 C planetary gearhead rev 9.
  • Faulhaber Drive Solutions Catalog 2024. Faulhaber Group, Schönaich, Germany.
  • Robotis e-Manual (Dynamixel), https://emanual.robotis.com/docs/en/dxl/ — accessed 2026-05-14. Covers AX/MX/X/Pro/H families and protocols 1.0 and 2.0.
  • VESC Project: Vedder, B. https://vesc-project.com — open-source FOC firmware + reference hardware.
  • ODrive Robotics: https://docs.odriverobotics.com — open-source BLDC controller documentation.
  • SimpleFOC: https://docs.simplefoc.com — Arduino-friendly FOC library.
  • MJBots Moteus: https://github.com/mjbots/moteus — open-source CAN-FD QDD controller.
  • Trinamic application notes AN001–AN048, https://www.analog.com/en/products/landing-pages/001/trinamic-technology.html — stepper and BLDC drive engineering notes.
  • TI TIDA-00643: “Three-Phase Servo Drive Reference Design with 18-bit Absolute Encoder Interface,” Texas Instruments, 2018.
  • ST UM2380: “Getting started with X-CUBE-MCSDK motor control software development kit,” STMicroelectronics rev 7, 2024.
  • Harmonic Drive LLC. CSF/CSG/SHG Component Set Catalogue, 2023.
  • Nabtesco. RV reducer catalogue, 2024.
  • SKF. INSOCOAT bearings — Electrically insulating bearings for VSD applications. Catalogue 14001 EN, rev 2021.
  • AEGIS Shaft Grounding Ring datasheets, Electro Static Technology, 2023.
  • ISO 10218-1:2011 Robots and robotic devices — Safety requirements for industrial robots — Part 1: Robots.
  • ISO/TS 15066:2016 Robots and robotic devices — Collaborative robots.
  • IEC 61508 series, Functional safety of electrical/electronic/programmable electronic safety-related systems.
  • Maxon “Formulae handbook,” free PDF download, Maxon Group.
  • Allied Motion (RoboDrive) ILM datasheets — ILM 50, ILM 70, ILM 85, ILM 115, 2024.
  • T-Motor product pages (MN3508, F35A ESC, AK-series QDD) — T-Motor, 2024–2025.