Contents — find the section you need
Background and reading guide

Background Basic frames, velocity and sensor terminology; use the reading guide for background.

Fundamentals · Explanations of principles, structure and trade-offs.

Position control — giving a robot arm nothing but a "move to this coordinate" command — works fine while the arm is moving through free space. If the target lies beyond a rigid surface, reducing position error can produce a large contact force. Its magnitude depends on gains, mechanical and environmental stiffness, approach speed, and torque limits. Contact does not inevitably make position control fail; controlling the interaction force requires additional design. This article starts from this concrete failure — "what happens the instant of contact" — and systematically works through impedance control, which defines the relationship between force and robot motion using a virtual spring, damper, and mass; admittance control, which reverses that causal relationship; and hybrid position/force control, which separates position and force by spatial direction, following the equations the whole way.

Schunk SVH servo-electric five-finger hand at Hannover Messe 2016A robotic hand that senses force and touch, in the field

Image: Robotic Hand at Hannover Messe 2016 (NearEMPTiness, CC BY-SA 4.0), Wikimedia Commons. A representative multi-fingered hand that senses contact and grip force, not a specific implementation of the impedance or admittance control discussed in the text.

0. What This Article Covers

  • Why position control alone can't handle tasks where the robot contacts its environment
  • The relationship between the inputs force control handles (position/force sensing) and its outputs (torque, joint angles)
  • How impedance control links position error and force through a "virtual spring, damper, and mass"
  • How admittance control is a design that reverses the causality of impedance control
  • The idea behind hybrid position/force control — spatially separating constrained and free directions
  • The differences among pure force control, impedance control, admittance control, and hybrid control, and when to use each
  • Why stiff environments, friction, and sensor noise make force control difficult
  • How the choice of method changes across industrial-robot assembly/polishing, collaborative-robot safety functions, and humanoid walking

1. Bottom Line First: What Force Control and Impedance Control Are

In one sentence: force control is a framework that treats the force a robot's hand (or joints) exerts on, or receives from, the environment as an explicit control target, not just position — and impedance control, one representative design within it, controls force indirectly by defining the relationship between position error and force as a virtual spring, damper, and mass (mechanical impedance).

The important distinction here is that "commanding force directly" and "defining the relationship between force and position" are different things. Pure force control targets force itself — "produce 10 N of force in this direction" — whereas impedance control targets a behavioral rule between position and force: "if the position drifts, push back (or let yourself be pushed back) with a force proportional to that drift." As we'll see in later sections, this difference has a major impact on robustness to the uncertainty inherent in contact.

2. Why high-stiffness position control can produce large contact forces

Most industrial robot arms are built on position control, which relentlessly tracks a target joint angle using high-gain PD control. While the arm is moving through free space, this causes no problems whatsoever — it simply outputs torque to shrink the difference (error) between target and current position, and the arm traces its intended trajectory accurately.

The problem arises the instant the hand contacts a rigid object. The position-control controller keeps detecting the error "I haven't reached the target position" and keeps outputting torque to try to reduce it. But because the environment (the tabletop, the wall of the screw hole) doesn't move, the hand simply can't go any further. In an idealized rigid-body contact, this situation can be formalized as follows.

\tau = K_p (\theta_d - \theta) + K_d (\dot{\theta}_d - \dot{\theta})

For fixed targets and finite gains, a PD controller produces finite torque at a fixed error; torque does not grow without bound merely as time passes. Large gains or a target penetrating the surface can nevertheless produce excessive contact force. Integral action introduces a separate windup issue. Evaluate torque limits, compliance, and approach speed in the actual system.

Furthermore, position control assumes that the "target trajectory" itself precisely matches the environment's geometry. Consider inserting a pin into a screw hole: if the hole's center position is off by even 0.1 mm, a robot with position control alone will keep pressing against the wall by exactly that error. Humans can perform this kind of manual task because our wrists and fingertips naturally have a softness (compliance) — "feel the force, and give a little" — and robots need this same property deliberately engineered in. This is the motivation behind force control and impedance control.

3. What Are the Inputs?

Force control draws on more information sources than position control alone.

  • Joint angle and joint angular velocity: the joint state \theta, \dot{\theta} obtained from encoders, shared with position control.
  • Force/torque applied to the hand (or the whole arm): the actual force F_{\text{ext}} received from the environment, obtained from a 6-axis F/T sensor mounted on the wrist, or from torque sensors on each joint. The principle behind this force sensing is covered in detail in How Force/Tactile Sensors Work, and the Leading Products.
  • Target trajectory / target impedance: in addition to the reference position \mathbf{x}_d the hand should achieve, impedance control also requires the target virtual mass, damping, and stiffness parameters (M_d, D_d, K_d) to be given in advance by the designer as inputs.
  • Information about contact and environmental properties: methods such as hybrid control, which assume that whether a direction is constrained differs by spatial direction, also take as a design input which directions are constrained by the environment (the selection matrix).

The addition of force sensing is the biggest difference from position control. The force sensor's bandwidth and sampling rate and noise characteristics directly govern the response speed and stability of the entire force-control loop.

4. What Are We Solving For? What Are the Outputs?

What force control ultimately outputs, just like position control, is a torque command \tau to each joint. What differs by method is what the computation of that torque targets.

  • Pure force control: directly feeds back the difference between the target force F_d and the measured force F_{\text{ext}}, driving the force error itself toward zero.
  • Impedance control: outputs the torque that realizes a target "relationship between position and force" (a virtual spring, damper, and mass). Contact force is determined by environmental stiffness, penetration, K_d, delay, and saturation, so there is no guarantee that excessive force will be prevented automatically even in a stiff environment.
  • Admittance control: computes the position correction \Delta\mathbf{x} (or a velocity correction) from the measured or estimated force, and passes it to an inner position-control loop. Force is the input and the correction is the output — the causality is reversed relative to impedance control.
  • Hybrid position/force control: splits the task space into "directions where position should be controlled" and "directions where force should be controlled," applying a different control law (position or force control) simultaneously to each direction.

Every one of these methods pursues the same shared goal — "keep the force generated at contact within a range that won't cause damage or accidents, while achieving a trajectory and force level that's meaningful for the task" — through a different arrangement of equations.

5. Basic Architecture

The loops around force control can be organized around the structure of where and how "force feedback" merges into the position-control loop. First, let's look at the difference in causality between impedance control and admittance control in a diagram.

Diagram 1 · Use the button to switch views
The difference in causality between impedance control and admittance control A diagram showing that impedance control is a top loop that takes position error as input and outputs force, while admittance control is a bottom loop that takes force as input and outputs a position correction, which it passes to the inner position-control loop Impedance control (position → force) Target position x_d Actual position x Virtual spring/damper/mass M(ẍ-ẍd)+D(ẋ-ẋd)+K(x-xd) Target reaction force F Joint torque τ = Jᵀ F Admittance control (force → position) Measured force F_ext Virtual mass/damper/spring Mẍ+Dẋ+Kx = F_ext Position correction Δx Inner position-control loop The motion produced by position control is measured again by the force sensor (feedback)

Figure 1 — Impedance control takes position (error) as input and outputs force, which is converted into a torque command. Admittance control, conversely, takes force as input and outputs a position correction, which is passed to an existing position-control loop. Both use the same "virtual spring, damper, and mass" relationship, just with input and output reversed.

Next, let's look at how hybrid position/force control splits the task space into two subspaces.

Diagram 2 · Use the button to switch views
The structure of hybrid position/force control A diagram showing that a selection matrix splits the task space into position-control directions and force-control directions, applies an independent control law to each, and then combines them into a joint torque Target position/force x_d, F_d Selection matrix S, (I-S) Split by direction Free direction (unconstrained) Position control Constrained direction (touching environment) Force control Combine τ = τ_pos + τ_force

Figure 2 — Hybrid position/force control uses a selection matrix to split each direction of the task space into "a direction to control position" and "a direction to control force," computes torque independently for each, and combines them into a single joint-torque command.

6. Representative Algorithms

Compliance Control — the Theoretical Foundation of Force Control

One of the important early pieces of work to systematically formalize force-feedback control is Matthew T. Mason's 1981 paper in IEEE Transactions on Systems, Man, and Cybernetics, "Compliance and Force Control for Computer Controlled Manipulators." This paper gave a framework for classifying position and force according to the type of constraint (natural constraints and artificial constraints) that arises when a robot's hand position is constrained by the geometry of the task object, and it became the theoretical foundation for the hybrid position/force control discussed below. This idea — geometrically sorting out "along which axis of the task coordinate frame should position be controlled, and along which should force be controlled" — remains the textbook starting point for force control today.

Hybrid Position/Force Control — Splitting Space to Control It Simultaneously

M.H. Raibert and J.J. Craig's 1981 paper in ASME's Journal of Dynamic Systems, Measurement, and Control, "Hybrid Position/Force Control of Manipulators," proposed hybrid position/force control, which explicitly splits each axis of the task-space coordinate frame into a direction where position should be controlled and a direction where force should be controlled, and controls both simultaneously. Taking an assembly task that slides along a table's surface as an example: the direction perpendicular to the table (where you want to hold the pressing force constant) gets force control, and the two directions parallel to the table (where you want to trace a trajectory) get position control.

Mathematically, this uses a selection matrix S whose diagonal entries are 0 or 1, applying the position-control law along directions where S is 1 and the force-control law along directions where (I - S) is 1.

\tau = J^{\top}\left[ S\, F_{\text{pos}} + (I - S)\, F_{\text{force}} \right]

F_{\text{pos}} is the virtual force computed from position error, and F_{\text{force}} is the virtual force computed from force error. This method's strength lies in its intuitive clarity, but it assumes the constrained direction aligns exactly with an axis of the task coordinate frame, which becomes a weakness when the environment's shape or pose is uncertain, since designing the selection matrix itself becomes difficult.

Impedance Control — Defining the Relationship Between Position and Force Itself

Neville Hogan's three-part 1985 paper in ASME's Journal of Dynamic Systems, Measurement, and Control, "Impedance Control: An Approach to Manipulation" (Part I — Theory, Part II — Implementation, Part III — Applications), presented a different idea from hybrid control. Rather than choosing either position or force as the control target, it defines the relationship between position error and the force the hand exerts (or receives) in response using target virtual mass, damping, and stiffness parameters.

M_d\, \ddot{\mathbf{e}} + D_d\, \dot{\mathbf{e}} + K_d\, \mathbf{e} = F_{\text{ext}},\qquad \mathbf{e}=\mathbf{x}-\mathbf{x}_d

M_d, D_d, K_d are, respectively, the target virtual mass, virtual damping coefficient, and virtual stiffness (spring constant) — parameters the designer chooses according to the task. This equation tries to realize, as the hand's behavior, a virtual mechanical system made of a mass, spring, and damper: "the further the hand drifts from the target position, the more it pushes back like a spring (or is pushed back) in response to the external force F_{\text{ext}}." A larger or smaller K_d makes the hand respond more stiffly or more softly, and D_d handles the damping that suppresses oscillation.

The important point is that impedance control does not directly command the target force itself. If the environment is stiff, even a slight position error produces a large reaction force to balance it, so excessive force is avoided as a result. Conversely, in free space, the external force is zero, so this equation reduces to essentially the same behavior as ordinary position control (trajectory tracking via a spring and damper). This robustness — the same control law naturally changes its behavior in free space and in constrained space, without explicitly switching based on whether contact has occurred or how stiff the environment is — is why impedance control is so widely used as the central idea of force control.

Admittance Control — a Reversed-Direction Design That Computes a Position Correction From Force

Where impedance control is a design that "takes position (error) as input and outputs force," admittance control is a design with the opposite causality: "takes force as input and outputs a position (correction)." The measured external force F_{\text{ext}} is fed into the same mass/damping/stiffness mechanical system, and the resulting position correction \Delta \mathbf{x} is added to the target value of an existing (high-gain) position-control loop.

M_d\, \ddot{\Delta\mathbf{x}} + D_d\, \dot{\Delta\mathbf{x}} + K_d\, \Delta\mathbf{x} = F_{\text{ext}},\qquad \mathbf{x}_{\text{cmd}}=\mathbf{x}_d+\Delta\mathbf{x}

The \mathbf{x} obtained by integrating this equation (numerically or analytically) becomes the corrected target position handed to the inner position-control loop. The mathematical form is nearly identical to the impedance-control equation, but the essential difference is what serves as input and what serves as output. This difference in causality is tied to whether the actuator can directly command torque in practice — a robot with high-performance actuators that can command joint torque directly can implement impedance control straightforwardly, whereas an industrial robot with a stiff reduction gear that can only command position (or velocity) finds admittance control, which converts force information into a position command, easier to layer onto an existing position-control loop.

7. How the Algorithms Differ

Method Principle Accuracy (Force Tracking) Computational Cost Robustness to Changing Environmental Stiffness Implementation Difficulty
Pure force control Directly feeds back force error High (faithful to the target force) Low Low (prone to instability in stiff environments) Moderate
Hybrid position/force control Uses a selection matrix to separate position and force control by direction High along constrained directions, high position tracking along free directions Moderate (requires designing the selection matrix) Moderate (weak if the constraint-direction assumption is off) Moderate to high (requires task-coordinate-frame design)
Impedance control Links position error and force via a virtual spring/damper/mass Only indirect force control (poor tracking of a target force) Moderate High (no need to explicitly switch between contact/non-contact) High (assumes torque-controllable actuators)
Admittance control Takes force as input, outputs a position correction, passes it to the inner position-control loop Same indirectness as impedance control Moderate High Moderate (easy to retrofit onto an existing position-controlled robot)

As a general trend, if faithfulness to a target force itself is the priority, pure force control or hybrid control has the advantage; if stability and safety are the priority under uncertain environmental stiffness or shape, impedance control or admittance control has the advantage. Because most actual industrial robots have joints that can't directly command torque (they're mostly position/velocity-command mechanisms), admittance control, or a hybrid implementation combining both, tends to be adopted more often than impedance control itself.

8. Where It Struggles / Difficult Environments

The difficulties force control and impedance control face in real-world operation can broadly be organized as follows.

Stability in extremely stiff environments: if the target stiffness K_d in the impedance-control equation is set too high, even a small position error produces a large force, which can interact with sensor sampling delay and joint elasticity (gear flex, etc.) to trigger oscillatory instability (contact instability, as it's known). Conversely, if K_d is set too low, tracking of the target trajectory is lost. Choosing K_d well is hard to optimize without prior knowledge of the environment's actual stiffness.

Friction and actuator nonlinearity: joint reduction gears and belt drives have friction and backlash (play), which act as disturbances that don't appear in the idealized torque-control equation. Especially in robots using inexpensive reduction gears, this friction can prevent the "virtual spring/damper" behavior assumed by impedance control from being accurately reproduced.

Force-sensor noise and bandwidth: the response speed of the force-control loop is directly limited by the force sensor's sampling rate and noise characteristics. Feeding noisy sensor output straight into the feedback loop causes the control law to amplify unintended high-frequency vibrations, so there's always a filtering-versus-control-bandwidth tradeoff to consider.

Insufficient prior knowledge of the environment's shape and stiffness: hybrid position/force control needs to know in advance which axis the constrained direction corresponds to. If there's an error in the actual task object's pose or shape, unexpected force arises in a direction different from what was assumed, and the selection-matrix design itself breaks down.

Multi-point and surface contact: most of the discussion so far assumes a single point on the hand contacting the environment. In multi-point or surface contact, such as a robotic hand wrapping around and grasping an object, each contact point's force needs to be handled individually, which makes it difficult to simply extend the single-point impedance-control framework.

9. Practical Choices

Choosing an approach among force control and impedance control depends on the type of actuator the robot has, the nature of the task, and the safety requirements.

  • Industrial robot arm assembly/polishing (screw tightening, deburring, fitting work): many of these tasks have a known constrained direction in advance, so hybrid position/force control, or admittance control that's easy to retrofit onto an existing position-controlled robot, is widely used. Polishing work — tracing a surface while keeping the pressing force constant — is a textbook example where the force-control and position-control directions are clearly separated.
  • Collaborative-robot (cobot) safety functions: the safety function of detecting human contact and immediately reducing or stopping force is often combined with an impedance-control-like design (soft virtual stiffness) using signals from joint torque sensors or wrist force/torque sensors. The upper limits on contact force set by collaborative-robot safety standards such as ISO/TS 15066 tie directly into this kind of force-control design target.
  • Humanoid and legged-robot walking and foot-ground contact: it's common to apply impedance control at each leg joint (or Whole-Body control that handles the whole-body impedance in an integrated way) to absorb the impact at the moment a foot touches the ground and keep balance on uneven terrain. The ground's stiffness is often unknown, which is exactly where impedance control's robustness to changing environmental stiffness pays off.
  • Prosthetics and rehabilitation robots (devices in direct contact with people): these need to softly follow unintended changes in force from the wearer, and admittance control, which can treat force as an input, is preferred because it's easy to integrate into existing position-control-driven actuator configurations.
  • Inspection and measurement tasks that require precise force values themselves: when faithful tracking of a target force is the top priority, pure force control or hybrid control is better suited than impedance control or admittance control, which only control force indirectly.

In every application, force control is never an isolated technology confined to the robot alone — realizing meaningful "soft contact" on real hardware requires combining force/tactile sensors that detect force and torque, kinematics (inverse kinematics and the Jacobian) that connects joint space and task space, and the characteristics of the actuator that actually generates joint torque (see the Hydraulic Systems Primer for force control with hydraulic drives).

10. Summary (Three-Line Recap)

  • A robot with position control alone breaks down the instant it contacts a rigid environment, trying to output excessive force — which is why control that explicitly handles force is needed.
  • Impedance control links position error and force through a virtual spring, damper, and mass; admittance control reverses that causality, computing a position correction from force.
  • Hybrid position/force control has the clarity of splitting space into position-control and force-control directions, but it depends on prior knowledge of the environment's pose and shape.

Primary references for the control objectives

Check your understanding
Does impedance control simply hold a constant contact force?

It primarily shapes the relationship between force and motion. Distinguish it from force tracking and check contact conditions and stability.

Current step · 15 / 18 · Robotics Primer

What to read next

Review the backgroundRobot Arm Kinematics Primer — Forward Kinematics, Inverse Kinematics, and the JacobianContinue the seriesHydraulic Systems Primer — From Pascal's Principle to Force Control in RobotsExplore another aspect of this fieldWhy ICP fails: initialization, outliers and symmetric geometry