Robot Position, Velocity and Torque Control: How the Joint Loops Differ

Robot position, velocity and torque control are not three interchangeable labels for the same command. Position control asks a joint to reach an angle, velocity control asks it to maintain a rate, and torque or effort control asks the drive to create a turning effect. The available command interface and the feedback closed below it determine the real behavior.

Most servo joints use cascaded loops. A fast current loop regulates motor torque, a slower velocity loop surrounds it, and a position loop may surround both. Gear ratio, friction, backlash, compliance, sensors, saturation and thermal limits change what reaches the output axis.

Use this guide with the robot encoder guide and contact-control comparison. Gains and mode transitions must be validated on the actual drive, mechanism and load; a software interface name alone does not prove output torque or safety.

Start with the quantity that the application must regulate

A pick-and-place axis usually prioritizes path position and timing. A conveyor or wheel may prioritize speed. Contact, force limiting or dynamic balance may need torque-level behavior. Translate the task into tracking error, disturbance rejection, contact response and stop requirements before choosing the command mode.

The outer application can still generate several quantities. A trajectory may contain position, velocity and acceleration feedforward, while the joint closes an effort loop. State the commanded variable, measured variable, controller location and rate so that the architecture is unambiguous.

Open servo motor showing electric motor gear train and position feedback components
A compact servo combines a motor, reduction gears and position feedback, while its electronics close one or more control loops. Source: Michael Coghlan via Wikimedia Commons. License: CC BY-SA 3.0.

The current loop is the practical torque-producing layer

Motor torque is approximately related to q-axis current through the motor torque constant within modeled limits. The drive measures phase current and switches voltage rapidly to make current follow its reference. Electrical delay, voltage limit, current-sensor error and temperature limit bound the response.

A current command is not automatically equal to joint torque. Gear ratio, efficiency, friction, cable forces, reflected inertia and calibration intervene. If output torque matters, validate the relationship with an external force or torque reference across direction, speed and temperature.

Command layerTypical feedbackOutput of the loopPrimary limitation
Current or torqueMotor current, sometimes torque sensorVoltage or current demandVoltage, current and thermal limits
VelocityEncoder velocityTorque-producing demandNoise, delay and acceleration limit
PositionEncoder positionVelocity or torque demandCompliance, backlash and path limits
Cartesian motionRobot kinematicsJoint referencesSingularity and model error
Contact objectiveForce or tactile sensingMotion or torque correctionStability and safety limits

The velocity loop converts speed error into torque demand

Velocity control compares measured joint or motor speed with a reference and normally produces a torque or current command. It rejects load disturbances without forcing a particular final position. Speed estimation quality matters because encoder differentiation amplifies quantization and noise.

Tune the loop with the mechanism attached. A gain that is stable on an unloaded motor may excite gearbox compliance or structural resonance after installation. Acceleration, jerk and current limits must be coordinated so the velocity controller does not remain saturated during every transition.

The position loop generates motion from angular error

Position control compares target and measured angle, then produces a velocity or torque demand. It is intuitive for trajectory execution, but high proportional gain is not free accuracy. Compliance, backlash, sensor placement and saturation can create oscillation or large contact force.

The ROS 2 Joint Trajectory Controller documentation distinguishes position, velocity and effort command interfaces and describes how trajectory error can be mapped through PID for velocity or effort commands. The hardware implementation below the interface still defines the physical behavior.

Loop bandwidth should decrease from the inside outward

The current loop must normally settle faster than the velocity loop, and the velocity loop faster than the position loop. This separation allows each outer loop to treat the inner response as approximately immediate over its own bandwidth. Poor separation creates interaction and difficult tuning.

Do not choose rates from a slogan such as ten times faster without measuring delay, resonance and computation jitter. Identify the plant response, set conservative bandwidth below problematic modes, and check gain and phase margin under payload and temperature variation.

Five-stage nested robot joint control loop
Inner-loop bandwidth, mechanical limits and safe mode transitions determine joint behavior. Source: Physical AI Lab.

Position, velocity and effort interfaces have different semantics

ROS 2 control exposes joint state and command interfaces for position, velocity and effort, while joint kinematics and transmission mappings connect actuator and joint spaces. An effort number may represent motor torque, joint torque or a normalized demand depending on the hardware plugin.

Document units, sign, reference frame, gear mapping, saturation and whether gravity or friction compensation is included. Confirm what happens when commands stop arriving. A simulator that applies effort directly is not evidence that a physical drive provides calibrated joint torque.

Verification testPosition mode evidenceVelocity mode evidenceTorque mode evidence
Step or trajectorySettling and path errorRate trackingTorque rise and limit
Load disturbancePosition recoverySpeed recoveryTorque regulation
ReversalBacklash and hysteresisZero-crossing behaviorFriction compensation
ContactPeak force and deflectionSpeed-to-force transientForce or impedance response
Mode transitionNo position jumpNo rate jumpNo torque impulse

PID terms solve different error patterns

Proportional action responds to present error, integral action removes persistent bias, and derivative or velocity feedback adds damping. Feedforward terms can supply expected gravity, inertia, velocity or friction demand so feedback corrects residual error instead of carrying the whole task.

Integral action needs particular care near saturation and mode changes. A large stored integrator can command an unexpected surge after the limit clears. Use anti-windup, bounded integrators, bumpless initialization and logged term contributions during commissioning.

Saturation and mechanics break the ideal cascade

Voltage, current, velocity, acceleration and travel limits can each clip a command. The outer loop must know when the inner loop cannot comply; otherwise error accumulates while the actuator remains pinned. Limit management should produce a controlled response rather than a hidden discontinuity.

Gearbox elasticity, backlash, stiction and structural modes mean motor-side feedback is not always output-side motion. Add output sensing or model compensation only after measuring the effect. Aggressive gains used to hide mechanical error can increase heat, wear and contact severity.

Validate tracking, disturbances and contact separately

Trajectory tracking measures path and timing error under representative speed, acceleration and payload. Disturbance tests apply known load changes and observe recovery. Contact tests introduce controlled environment stiffness and measure force, deflection and stability. One successful test does not substitute for the others.

Log references, measured states, controller terms, saturation flags, temperatures and safety events on a common time base. Repeat across direction, pose and warm-up. A repeatable output-side measurement is more useful than a clean internal command trace.

Mode transitions are part of the control design

Switching from position to torque control can create a jump if the new controller starts with a reference inconsistent with the current state. Initialize position targets, integrators and torque bias from measured conditions, and ramp authority under explicit transition logic.

Define permitted transitions, guard conditions, timeout behavior and fallback mode. Test stale commands, sensor loss, drive faults and emergency stops. A smooth nominal handoff is incomplete until the fault paths are also bounded.

  • Name the regulated quantity and where feedback closes.
  • Keep inner loops faster than outer loops with measured margin.
  • Document command units, mappings and saturation.
  • Test tracking, disturbance rejection and contact separately.
  • Make every mode transition explicit and bumpless.

Frequently asked questions

Does a position-controlled robot have no torque control?

Usually it still has a fast motor-current or torque-producing loop underneath the position loop; the user may simply not command it directly.

Is a faster controller update rate always better?

No. Sampling must support the desired bandwidth, but delay, noise, jitter, computation and mechanical resonance still limit useful gain.

Is an effort command equal to measured joint torque?

Not necessarily. Confirm the hardware definition, transmission mapping, friction compensation and calibration with output-side evidence.

Will higher position gain always improve accuracy?

No. It can reduce low-frequency error but also excite compliance, increase contact force, saturate the drive and add heat.

Can the controller switch directly from position to torque mode?

Only with a designed transition that initializes references and states, limits command change and verifies fault behavior.

Joint Control Boundary Note

Control gains, limits and mode transitions are specific to the actuator, drive, sensing, load and safety design. Validate output behavior with representative hardware and do not infer calibrated torque or a safety function from a software interface name.