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
- 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 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.
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.
- 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 (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). As a result, the behavior automatically emerges that the robot yields position while absorbing a large reaction force if the environment is stiff, and prioritizes position if the environment is soft.
- Admittance control: computes the desired position/velocity correction from the measured force, and passes it to an inner position-control loop. Force is the input and position 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.
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.
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.
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, 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.
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.
Comments
Please log in to post a comment
No comments yet.