Position control — giving a robot arm nothing but a "move to this coordinate" command — works fine while the arm is moving through free space. But the instant the hand touches a rigid environment, like a tabletop or the wall of a screw hole, position control fundamentally breaks down: the command trying to reach the target position collides with the reaction force pushing back from the environment, and in theory a force approaching infinity can result. 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.

0. What This Article Covers

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 Can't Position Control Alone Handle Contact Tasks?

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})

Even if the environment is perfectly rigid and the hand can't move (\theta \approx constant), as long as the target angle \theta_d keeps being commanded deeper into the environment, the torque corresponding to the position error (\theta_d - \theta) will try to grow without bound as the proportional gain K_p increases. In an actual robot, the force stays finite because of the motor's torque limit, gear elasticity, and physical joint play — but even so, unintended excessive contact force still results, leading to part damage, robot failure, or, in the case of contact with a human, a serious safety risk.

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.

The addition of force sensing is the biggest difference from position control. The force sensor's bandwidth (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.

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.

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.

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{x}} - \ddot{\mathbf{x}}_d) + D_d\, (\dot{\mathbf{x}} - \dot{\mathbf{x}}_d) + K_d\, (\mathbf{x} - \mathbf{x}_d) = -F_{\text{ext}}

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 K_d makes the hand respond stiffly, a smaller K_d makes it respond 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{\mathbf{x}} + D_d\, \dot{\mathbf{x}} + K_d\, \mathbf{x} = F_{\text{ext}}

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.

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)

#Force Control #Impedance Control #Admittance Control #Hybrid Position/Force Control #Compliance Control #Robotics Primer