Topic hub

Actuators and drives

What moves a robot joint. BLDC, stepper and servo motors, harmonic, cycloidal and planetary gearboxes, quasi-direct drive, encoders and motor drivers, and where hydraulics and pneumatics still win.

Updated 14 Nov 2026 · BLDC, field-oriented control, stepper motor, servo, harmonic drive, cycloidal gearbox, planetary gearbox, quasi-direct drive, encoder, motor driver, hydraulics, pneumatics

Overview

An actuator turns electrical, hydraulic or pneumatic power into motion at a joint. Its properties set hard limits that no controller can remove: peak and continuous torque, speed, how much the joint resists being pushed by hand, how much it rings when it stops, and how accurately you know where it is. Most robot designs start here, because the actuator chosen decides the mass, the cost and which control strategies are possible.

This hub is for engineers choosing or specifying joints, writing drive firmware, or trying to understand why a robot behaves differently from its simulation. Electric joints are the default today, so most of the page is about motors, gearboxes, encoders and drives, with a section at the end on fluid power.

Key ideas

Motors and drives

Most robot joints use brushless DC motors (BLDC), also called permanent-magnet synchronous motors when driven with sinusoidal currents. A drive switches three phase voltages from a PWM inverter and runs a current loop at high rate. Field-oriented control (FOC) transforms the measured phase currents into a frame that rotates with the rotor, where torque-producing current and magnetising current become two slowly varying values that PI controllers can regulate. The SimpleFOC documentation walks through the Clarke and Park transforms this relies on.

Stepper motors move in fixed steps with no feedback and hold position well at rest. They are cheap and common in 3D printers, small arms and educational robots. Driven open loop, a stepper that is overloaded loses steps and does not know it. Closed-loop steppers add an encoder to catch this.

“Servo” means a motor with position feedback and its own controller. In industry it is a motor, encoder and drive tuned together. In hobby robotics it is a small geared motor with a potentiometer, commanded by pulse width.

controllerCAN or EtherCATmotor driveFOC, current loopmotorBLDCgearboxratio N:1jointlink, loadsetpoint3 phasesshaftoutputinertia reflected by N²motor encoderoutput encoder (optional)
A typical electric joint. The drive runs field-oriented control and the current loop, switching the three motor phases from a PWM inverter. A motor-side encoder gives the commutation angle and velocity. An optional output-side encoder after the gearbox measures the true joint angle, including gearbox deflection and backlash. A gearbox of ratio N multiplies torque by N and the motor's reflected inertia by N squared.

Gearboxes, transparency and quasi-direct drive

Motors are efficient at high speed and low torque. Joints need the opposite, so most use a reduction. Planetary gearboxes are efficient and cheap, with modest ratios per stage and some backlash. Harmonic drives (strain wave gearing) reach high ratios in one compact stage with very little backlash, which is why they are widely used in compact arm joints, but the flexible spline adds compliance and friction. Cycloidal reducers also give high ratios in one stage and tolerate shock loads well.

A gearbox of ratio N multiplies output torque by N and the motor’s reflected inertia by N squared, and it adds friction. A high-ratio joint is therefore hard to back-drive and cannot sense contact forces from motor current. Quasi-direct drive takes the opposite approach: a large-diameter motor with a low-ratio single-stage reduction, so the joint stays transparent and motor current is a usable estimate of joint torque. Wensing and colleagues (2017) describe this design for the MIT Cheetah, and Kenneally, De and Koditschek (2016) the direct-drive extreme. Series elastic actuators, introduced by Pratt and Williamson (1995), go the other way: they put a deliberate spring after the gearbox and measure its deflection to get force.

Encoders

Incremental encoders output two square waves, A and B, a quarter cycle apart. The order of the edges gives direction, and counting every edge of both channels gives four counts per cycle. An index pulse, Z, marks one position per revolution. Absolute encoders, optical or magnetic, report the angle directly at power-up, and multi-turn versions also count revolutions. See encoder.

Incremental quadrature encoder turning forwards. Channel A leads channel B by a quarter cycle, so each of the four edges per cycle is one count, and the order of A and B edges gives the direction. The index channel Z pulses once per revolution.ABZ (index)
Incremental quadrature encoder turning forwards. Channel A leads channel B by a quarter cycle, so each of the four edges per cycle is one count, and the order of A and B edges gives the direction. The index channel Z pulses once per revolution.

A motor-side encoder is needed for commutation and velocity. An output-side encoder after the gearbox measures the actual joint angle, so the difference between the two reveals backlash and gearbox wind-up. Joints with both can correct for deflection under load.

Hydraulics and pneumatics

Hydraulic actuators have high force for their size and absorb impacts well, which keeps them in construction machinery and heavy field robots. They need a pump, hoses and seals, they leak, and their servo valves are nonlinear to control. Pneumatics is cheap and naturally compliant, which suits grippers, suction cups and soft robots, but air’s compressibility makes precise position control hard.

Where to start

/learn/beginner/05-pid-control/ builds the kind of loop a drive runs. /learn/beginner/07-differential-drive/ uses wheel encoders to estimate motion. /topics/control/ explains the cascade the drive sits at the bottom of.

Tools and platforms

Tool What it is for Licence Platform
moteus BLDC servo controller, open hardware and firmware, CAN-FD Apache-2.0 /platforms/opensource/
ODrive (v3 firmware) BLDC drive firmware for the ODrive v3. The maker says newer boards’ firmware is not public MIT /platforms/opensource/
VESC firmware Motor control firmware for VESC-compatible drives GPL-3.0 /platforms/opensource/
SimpleFOC FOC library for BLDC and stepper motors on Arduino-compatible boards MIT /platforms/opensource/
ros2_control Hardware interface layer between drives and ROS 2 controllers Apache-2.0 /platforms/ros/

Common mistakes

  • Sizing a motor on peak torque alone. Check the continuous torque at the duty cycle you need, and the thermal limit.
  • Forgetting reflected inertia. A small motor behind a large ratio can dominate the joint’s apparent inertia.
  • Assuming the motor encoder gives the joint angle. Gearbox backlash and compliance sit between them.
  • Running an overloaded stepper open loop. It loses steps silently.
  • Treating harmonic drives as perfectly stiff. Their compliance shows up as low-frequency resonance in fast motions.

Going deeper