25 minute read

All the classical motion-control strategies treated in the previous posts share an implicit assumption: the manipulator is free to track a prescribed trajectory in the workspace, the environment imposes no kinematic constraints, and the only forces acting on the end-effector are inertial. This is adequate for tasks such as pick-and-place, materials transfer, or spot welding, where the robot does not interact with rigid bodies along the path. It breaks down, however, the moment the robot is asked to push, pull, grind, polish, insert, deburr, or assemble — in short, whenever physical contact with a stiff environment is part of the task itself.

The reason is a fundamental conflict between two extremely stiff systems. A high-gain position-controlled manipulator is by design intolerant of position deviation; the environment, being rigid, is incapable of accepting position deviation without responding with large reaction forces. Slight position errors — arising from joint encoder resolution, link compliance, kinematic miscalibration, or imperfect knowledge of the environment geometry — therefore generate catastrophic interaction forces. Spong, Hutchinson, and Vidyasagar phrase it plainly: in a window-washing task or a pen-on-paper task, a few millimeters of position error are enough to either lose contact with the surface entirely or to press through it.

The remedy is to control the interaction itself. We must replace, or at least augment, the trajectory-tracking specification with a specification on the contact wrench. The body of techniques that achieves this is the subject of this post: stiffness/compliance control, impedance control (Hogan), admittance control, hybrid position/force control (Raibert–Craig), explicit force control with an inner motion loop, and the operational-space formulation (Khatib). They differ in which variable is sensed, which is commanded, and which dynamic relationship is imposed at the port of interaction.

The presentation follows Chapter 12 of Spong, Hutchinson, and Vidyasagar (Robot Dynamics and Control), Chapter 9 of Siciliano et al. (Robotics: Modelling, Planning and Control), and Chapter 11.5–11.7 of Lynch and Park (Modern Robotics).

Why Position Control Fails on Contact

Consider the linear scalar model used by Spong et al. (Eq. 12.45) to convey the essential difficulty: a unit mass $M$ on a frictionless surface subject to a control input $u$ and an environmental force $F$,

\[M \ddot{x} = u - F.\]

Suppose we close a pure position loop $u = -k_p (x - x_d)$ with a high gain $k_p$ in order to track the reference $x_d$. As long as the environment is absent ($F = 0$), the closed-loop system is the desired second-order tracker. The moment the end-effector contacts a rigid environment of stiffness $k_e$ at $x = x_{\text{wall}}$, however, the reaction force is $F = k_e (x - x_{\text{wall}})$, and the steady-state error satisfies

\[k_p (x_d - x_{ss}) = k_e (x_{ss} - x_{\text{wall}}),\]

so the steady-state contact force is

\[F_{ss} \;=\; \frac{k_p k_e}{k_p + k_e} \, (x_d - x_{\text{wall}}).\]

For a stiff environment ($k_e \gg k_p$) this reduces to $F_{ss} \approx k_p (x_d - x_{\text{wall}})$. The contact force grows linearly with the commanded over-penetration. In the limit of an infinitely stiff environment ($k_e \to \infty$) any positive $x_d - x_{\text{wall}}$ — i.e., any commanded position past the wall — generates an unbounded force. This is the rigid-environment paradox: high position gains are needed for accurate tracking in free motion but produce dangerous forces in contact.

The conclusion, anticipated by Whitney in the 1970s and made rigorous by Mason, Raibert, Craig, Hogan, and Khatib in the early 1980s, is that contact tasks require us to specify the dynamic behavior at the port of interaction, not merely the trajectory. We turn first to the geometry of that port.

Constrained Motion: Contact Frames, Twists, and Wrenches

When the manipulator end-effector makes contact with the environment, certain directions of motion become forbidden by the environment, while the complementary directions of force become free for the controller to command. This geometric partition is captured by the compliance frame (also called the constraint frame or task frame), a coordinate frame $o_c x_c y_c z_c$ attached to the contact point and aligned with the directions in which it is natural to describe the task.

The instantaneous motion of the end-effector relative to the environment is the twist $\mathbf{V} = (\mathbf{v}, \boldsymbol{\omega})^\top \in \mathbb{R}^6$, and the wrench exerted on the environment is $\mathbf{F} = (\mathbf{f}, \mathbf{n})^\top \in \mathbb{R}^6$. The instantaneous power transferred from the robot to the environment is the reciprocal product

\[\mathbf{V}^\top \mathbf{F} \;=\; \mathbf{v}^\top \mathbf{f} + \boldsymbol{\omega}^\top \mathbf{n}.\]

For a frictionless and rigid environment, the constraint surface does no work on the end-effector. This means that the contact wrench and the admissible twist must satisfy the reciprocity condition

\[\mathbf{V}^\top \mathbf{F} \;=\; 0.\]

(Spong Eq. 12.29; Siciliano Eq. 9.34.) Geometrically, the admissible twists and the admissible wrenches occupy complementary (reciprocal) subspaces of $\mathbb{R}^6$.

Natural and Artificial Constraints

This decomposition was formalized by Mason (1981). For every six-dimensional contact situation, the environment dictates six natural constraints: half of them are velocity (twist) constraints, half are force (wrench) constraints, and they are reciprocal. The remaining unconstrained variables — three velocities or three forces in each Cartesian direction — are free for the controller to set; their reference values are called artificial constraints and represent the task specification.

The canonical example is the peg-in-hole insertion analyzed by Spong (Fig. 12.5). With the compliance frame chosen at the tip of the peg, with $z_c$ along the hole axis, the natural and artificial constraints read (Spong Eq. 12.33, 12.35)

\[\underbrace{ \begin{array}{ll} \text{Natural} & \text{Artificial} \\ v_x = 0 & f_x = 0 \\ v_y = 0 & f_y = 0 \\ f_z = 0 & v_z = v^d \\ \omega_x = 0 & n_x = 0 \\ \omega_y = 0 & n_y = 0 \\ n_z = 0 & \omega_z = 0 \end{array} }\]

The peg cannot translate in $x$ or $y$ (the hole walls block it), nor can it rotate about $x$ or $y$ (the walls block tilting), so these are natural velocity constraints. Symmetrically, the frictionless walls cannot exert axial force $f_z$ or axial moment $n_z$ on the peg, so these are natural wrench constraints. The controller is therefore free to specify $v_z$ (push the peg into the hole at the desired speed $v^d$) and the lateral forces and moments, which the task typically sets to zero in order to minimize jamming. One checks immediately that the reciprocity condition $\mathbf{V}^\top \mathbf{F} = 0$ holds for every choice of artificial constraint.

$\color{blue}{\mathbf{Definition.}}$ Compliance / Constraint Frame
A **compliance frame** $\mathcal{C} = \{o_c, x_c, y_c, z_c\}$ is a Cartesian frame attached at the contact point and oriented so that the directions of natural velocity constraints and natural force constraints align with its coordinate axes. With respect to $\mathcal{C}$, the task is partitioned into *motion-controlled* directions (where the controller commands a twist) and *force-controlled* directions (where the controller commands a wrench), exactly one of which is free in each Cartesian dimension.


Selection Matrices and the Reciprocity Condition

The partition is implemented algorithmically through the selection matrices. Suppose that of the six task-space directions, $n_x = 6 - n_f$ are motion-controlled and $n_f$ are force-controlled. Let $\mathbf{S}_x \in \mathbb{R}^{6 \times n_x}$ be a basis for the motion-controlled subspace and $\mathbf{S}_f \in \mathbb{R}^{6 \times n_f}$ a basis for the force-controlled subspace. Then every admissible twist and contact wrench can be written

\[\mathbf{V} \;=\; \mathbf{S}_x \boldsymbol{\gamma}, \qquad \mathbf{F}_e \;=\; \mathbf{S}_f \boldsymbol{\beta},\]

(Spong Eq. 12.18, 12.30). The reciprocity condition $\mathbf{V}^\top \mathbf{F}_e = 0$ must hold for arbitrary $\boldsymbol{\gamma}, \boldsymbol{\beta}$, which forces the orthogonality requirement

\[\mathbf{S}_x^\top \mathbf{S}_f \;=\; \mathbf{0}.\]

In the special case where the compliance frame is aligned with the Cartesian coordinate axes and the contact geometry is described by axis-aligned constraints, both selection matrices reduce to diagonal $0/1$ matrices, and one writes a single diagonal matrix $\mathbf{S} = \mathrm{diag}(s_1, \ldots, s_6)$ in which $s_i = 1$ designates a motion-controlled direction and $s_i = 0$ a force-controlled direction. The motion projector is then $\mathbf{S}$ and the force projector is $(\mathbf{I} - \mathbf{S})$. This is the form most often quoted in introductions to hybrid control; the general $\mathbf{S}_x, \mathbf{S}_f$ form is needed whenever the constraint manifold is curved (see Spong Example 12.3 and Lynch–Park §11.6.2).

Constrained Manipulator Dynamics

When the robot is in contact with the environment, the joint-space equation of motion picks up an additional reaction term. Let $\mathbf{F}_e \in \mathbb{R}^6$ be the wrench exerted by the environment on the end-effector. The constrained dynamics are

\[\mathbf{M}(\mathbf{q}) \ddot{\mathbf{q}} + \mathbf{C}(\mathbf{q}, \dot{\mathbf{q}}) \dot{\mathbf{q}} + \mathbf{g}(\mathbf{q}) + \mathbf{J}(\mathbf{q})^\top \mathbf{F}_e \;=\; \boldsymbol{\tau},\]

(Spong Eq. 12.10) where $\mathbf{J}(\mathbf{q})$ is the manipulator Jacobian. The extra term $\mathbf{J}^\top \mathbf{F}_e$ is the joint torque generated by the contact wrench, derived from the virtual-work principle $\boldsymbol{\tau} = \mathbf{J}^\top \mathbf{F}$ (Spong Eq. 12.8).

Equivalently, when the constraint can be written as $\boldsymbol{\phi}(\mathbf{q}) = \mathbf{0}$ with constraint Jacobian $\mathbf{J}_{\phi_q}$, the Lagrangian formulation with multipliers $\boldsymbol{\lambda}$ yields

\[\mathbf{M}(\mathbf{q}) \ddot{\mathbf{q}} + \mathbf{C}(\mathbf{q}, \dot{\mathbf{q}}) \dot{\mathbf{q}} + \mathbf{g}(\mathbf{q}) + \mathbf{J}_{\phi_q}(\mathbf{q})^\top \boldsymbol{\lambda} \;=\; \boldsymbol{\tau},\]

and the contact wrench in task-space coordinates is $\mathbf{F}e = \mathbf{J}{\phi_x}^\top \boldsymbol{\lambda}$ with $\mathbf{J}{\phi_x} = \mathbf{J}{\phi_q} \mathbf{J}^{-1}$ (Spong Eq. 12.16, 12.17).

Stiffness and Compliance Control

The simplest interaction-control strategy is to deliberately lower the position-loop gains in selected Cartesian directions so that the robot becomes mechanically soft. In operational space the control law takes the form

\[\boldsymbol{\tau} \;=\; \mathbf{J}(\mathbf{q})^\top \big[ \mathbf{K}_p (\mathbf{x}_d - \mathbf{x}) - \mathbf{K}_d \dot{\mathbf{x}} \big] + \mathbf{g}(\mathbf{q}),\]

i.e., a Cartesian PD controller plus gravity compensation. The diagonal gain matrix $\mathbf{K}p = \mathrm{diag}(k{p,1}, \ldots, k_{p,6})$ is the stiffness matrix: its inverse $\mathbf{C} = \mathbf{K}p^{-1}$ is the compliance matrix. Along directions in which contact is expected, the designer chooses a small $k{p,i}$, so that small position errors do not produce excessive contact force; in free-motion directions, $k_{p,i}$ is kept large for accurate tracking.

In steady state, with the robot pressing against a stiff environment, the contact force satisfies $\mathbf{F}_e \approx \mathbf{K}_p (\mathbf{x}_d - \mathbf{x})$, so the contact force is regulated indirectly by setting $\mathbf{x}_d$ slightly past the surface and choosing $\mathbf{K}_p$ such that $\mathbf{K}_p \Delta \mathbf{x}$ matches the desired force. This stiffness control (Salisbury, 1980) is open-loop with respect to force: there is no explicit force feedback, only a passive trade-off between position and force governed by the chosen $\mathbf{K}_p$. It is appropriate when the environment is stiff (capacitive in the network-model sense of Spong §12.3) and a high-quality force sensor is unavailable.

$\color{green}{\mathbf{Property.}}$ Stiffness–Compliance Duality
Along a Cartesian direction with stiffness $k_p$, the steady-state response to an environmental force $f_e$ is a position deflection $\Delta x = f_e / k_p$. High $k_p$ (low compliance) prioritizes position accuracy; low $k_p$ (high compliance) prioritizes contact-force moderation. Pure position control is the limit $k_p \to \infty$; pure force control by stiffness alone is the limit $k_p \to 0$. Neither extreme is realizable in a stiff environment without auxiliary feedback.


Impedance Control (Hogan)

Hogan (1985) generalized stiffness control by recognizing that interaction is governed not only by a stiffness but by a dynamic relationship between motion and force at the port of contact. The control objective is no longer to make the robot behave like a position source or a force source, but to make it behave like a prescribed mechanical impedance: the relationship between an imposed motion and the resulting force is the design specification.

The Target Impedance

Let $\mathbf{x}(t) \in \mathbb{R}^n$ denote the end-effector pose in task coordinates, $\mathbf{x}_d(t)$ the reference trajectory, and $\mathbf{e}(t) = \mathbf{x}(t) - \mathbf{x}_d(t)$ the tracking error. The target impedance prescribes a second-order behavior

\[\boxed{ \; \boldsymbol{\Lambda}_d \, \ddot{\mathbf{e}} + \mathbf{D}_d \, \dot{\mathbf{e}} + \mathbf{K}_d \, \mathbf{e} \;=\; \mathbf{F}_{\text{ext}} \; }\]

with positive-definite design matrices $\boldsymbol{\Lambda}d$ (apparent inertia), $\mathbf{D}_d$ (apparent damping), and $\mathbf{K}_d$ (apparent stiffness), where $\mathbf{F}{\text{ext}}$ is the wrench exerted by the environment on the end-effector. In the language of network models (Spong §12.3), the robot is being instructed to render the impedance $\mathbf{Z}_r(s) = \boldsymbol{\Lambda}_d s + \mathbf{D}_d + \mathbf{K}_d / s$ at its port.

When $\mathbf{F}_{\text{ext}} = 0$, the target impedance reduces to a second-order error system, and the robot tracks $\mathbf{x}_d$ as in standard motion control. When the environment applies a force, the robot yields compliantly according to the prescribed inertia–damping–stiffness; no catastrophic contact force is generated even if $\mathbf{x}_d$ is commanded past the surface.

A Control Law That Achieves the Target Impedance

The standard derivation uses the inverse-dynamics architecture introduced in the previous post on multivariable control. Begin with the joint-space dynamics (Spong Eq. 12.10) and the inverse-dynamics control law

\[\boldsymbol{\tau} \;=\; \mathbf{M}(\mathbf{q}) \mathbf{a}_q + \mathbf{C}(\mathbf{q}, \dot{\mathbf{q}}) \dot{\mathbf{q}} + \mathbf{g}(\mathbf{q}) + \mathbf{J}(\mathbf{q})^\top \mathbf{F}_e,\]

where the last term cancels the measured contact wrench. The closed-loop behavior in joint space is the double integrator $\ddot{\mathbf{q}} = \mathbf{a}_q$. Using $\mathbf{a}_x = \mathbf{J} \mathbf{a}_q + \dot{\mathbf{J}} \dot{\mathbf{q}}$ (Spong Eq. 12.42), this becomes a task-space double integrator $\ddot{\mathbf{x}} = \mathbf{a}_x$. Now choose the outer-loop term as

\[\mathbf{a}_x \;=\; \ddot{\mathbf{x}}_d - \boldsymbol{\Lambda}_d^{-1} \big( \mathbf{D}_d \dot{\mathbf{e}} + \mathbf{K}_d \mathbf{e} + \mathbf{F}_e \big),\]

(Spong Eq. 12.47). Substituting back yields exactly the desired impedance equation,

\[\boldsymbol{\Lambda}_d \ddot{\mathbf{e}} + \mathbf{D}_d \dot{\mathbf{e}} + \mathbf{K}_d \mathbf{e} \;=\; -\mathbf{F}_e,\]

(Spong Eq. 12.48). The full joint-torque control law reads, in compact form,

\[\boldsymbol{\tau} \;=\; \mathbf{M}(\mathbf{q}) \mathbf{J}^{-1}\!\big( \mathbf{a}_x - \dot{\mathbf{J}} \dot{\mathbf{q}} \big) + \mathbf{C}(\mathbf{q}, \dot{\mathbf{q}}) \dot{\mathbf{q}} + \mathbf{g}(\mathbf{q}) + \mathbf{J}(\mathbf{q})^\top \mathbf{F}_e.\]

For Lynch and Park’s task-space form, exactly the same structure appears, with the impedance equation written in body or spatial twist coordinates and the inverse-dynamics terms expressed through $\bar{\boldsymbol{\Lambda}}(\theta)$ and $\bar{\boldsymbol{\eta}}(\theta, \mathcal{V})$ (Modern Robotics Eq. 11.65).

What Impedance Control Is and Is Not

A critical conceptual point, repeatedly emphasized by Hogan and by Lynch and Park, is that impedance is a behavior, not a force setpoint. Impedance control does not in general drive a desired contact force to zero error. With $\mathbf{F}_e = 0$ (no contact) it produces the desired motion; with $\mathbf{F}_e \neq 0$ it produces the desired compliant deflection from the reference trajectory. To track a force setpoint, one must couple impedance control with knowledge of the environment impedance — the hybrid impedance control of Anderson and Spong (Spong §12.4.2) — or one must close an explicit force loop, as in the next section.

$\color{red}{\mathbf{Theorem.}}$ Closed-Loop Impedance under Inverse-Dynamics Control
Assume that the manipulator model $\{\mathbf{M}(\mathbf{q}), \mathbf{C}(\mathbf{q}, \dot{\mathbf{q}}), \mathbf{g}(\mathbf{q})\}$ is exact, the Jacobian $\mathbf{J}(\mathbf{q})$ is non-singular, and the contact wrench $\mathbf{F}_e$ is measured without noise. Then the inverse-dynamics control law $$ \boldsymbol{\tau} \;=\; \mathbf{M}(\mathbf{q}) \mathbf{J}^{-1}\!\big( \ddot{\mathbf{x}}_d - \boldsymbol{\Lambda}_d^{-1} (\mathbf{D}_d \dot{\mathbf{e}} + \mathbf{K}_d \mathbf{e} + \mathbf{F}_e) - \dot{\mathbf{J}} \dot{\mathbf{q}} \big) + \mathbf{C} \dot{\mathbf{q}} + \mathbf{g} + \mathbf{J}^\top \mathbf{F}_e $$ produces the exact closed-loop impedance $\boldsymbol{\Lambda}_d \ddot{\mathbf{e}} + \mathbf{D}_d \dot{\mathbf{e}} + \mathbf{K}_d \mathbf{e} = -\mathbf{F}_e$ at the end-effector.


Admittance Control: The Dual of Impedance

In impedance control, the measured variable is motion (joint encoders, in practice) and the commanded variable is force (joint torques). The reverse arrangement, in which the measured variable is force and the commanded variable is motion, is admittance control. The robot senses the wrench $\mathbf{F}{\text{ext}}$ applied to its end-effector, passes it through a desired admittance $\mathbf{Y}(s) = \mathbf{Z}(s)^{-1}$, and uses the resulting motion as the reference for an inner position controller. Lynch and Park (Modern Robotics Eq. 11.66) state the algorithm in its simplest form: given the target behavior $\mathbf{M} \ddot{\mathbf{x}} + \mathbf{B} \dot{\mathbf{x}} + \mathbf{K} \mathbf{x} = \mathbf{F}{\text{ext}}$, compute

\[\ddot{\mathbf{x}}_d \;=\; \mathbf{M}^{-1} \big( \mathbf{F}_{\text{ext}} - \mathbf{B} \dot{\mathbf{x}} - \mathbf{K} \mathbf{x} \big),\]

invert kinematics to obtain $\ddot{\boldsymbol{\theta}}_d = \mathbf{J}^\dagger (\ddot{\mathbf{x}}_d - \dot{\mathbf{J}} \dot{\boldsymbol{\theta}})$, and feed this to a high-bandwidth inner motion loop.

The duality between impedance and admittance control is sharp. An impedance- controlled robot is a high-admittance device that should naturally couple to admittance-type (mass-like) environments; an admittance-controlled robot is a high-impedance device that should couple to impedance-type (compliant) environments. Coupling a high-impedance robot to a high-impedance environment is the dangerous case: small motion errors create large forces, exactly the rigid-environment paradox of the introduction.

Practical Trade-offs

Admittance control is the natural choice for non-backdrivable robots — those in which gearing, friction, or sheer mass makes it impossible for an external force to move the joints unless the controller commands it. Such robots cannot display low impedance through pure torque feedback; the only way to make them appear compliant is to sense the external force and respond by commanding motion. The price is bandwidth: the responsiveness of an admittance-controlled robot is limited by the bandwidth of its inner motion loop, the noise and filtering of the force sensor, and the sample rate at which the admittance filter can be updated.

Conversely, an impedance-controlled robot is the right choice when the robot is naturally backdrivable (lightweight, direct-drive, harmonic-drive, series-elastic) — in this regime, joint torques can be commanded accurately and the end-effector is mechanically transparent enough for the rendered impedance to dominate over the parasitic dynamics of the arm itself.

The two strategies also differ in their contact-stability behavior. An admittance-controlled robot in contact with a stiff surface effectively closes a high-gain loop around the contact stiffness; this is prone to instability at low admittance (high impedance, small $\mathbf{M}$). An impedance-controlled robot in contact with a low-impedance environment (free motion or air) effectively becomes an open loop in force; this is benign but causes drift unless the reference trajectory is held precisely.

Hybrid Position/Force Control (Raibert and Craig)

The decomposition of the task into orthogonal motion-controlled and force-controlled subspaces, introduced by Mason for task specification, was turned into a control architecture by Raibert and Craig (1981). The idea is to run two parallel control loops — one for motion, one for force — and project each onto the appropriate subspace before summing the resulting joint torques.

The Basic Architecture

Let $\mathbf{S} \in \mathbb{R}^{6 \times 6}$ be the diagonal selection matrix introduced earlier ($s_i = 1$ for motion-controlled axes, $s_i = 0$ for force-controlled axes). Let $\boldsymbol{\tau}{\text{motion}}$ be the torque that a *pure* task-space motion controller would generate to track $\mathbf{x}_d$, and let $\boldsymbol{\tau}{\text{force}}$ be the torque that a pure task-space force controller would generate to track $\mathbf{F}_d$. The hybrid Raibert–Craig control law is

\[\boldsymbol{\tau} \;=\; \mathbf{J}(\mathbf{q})^\top \big[ \, \mathbf{S} \, \mathbf{F}_{\text{motion}} \,+\, (\mathbf{I} - \mathbf{S}) \, \mathbf{F}_d \, \big],\]

where $\mathbf{F}_{\text{motion}}$ is the operational-space wrench computed by the motion controller, $\mathbf{F}_d$ is the desired wrench, and $\mathbf{S}$ selects the components actually applied. The two loops operate on complementary directions and the closed-loop dynamics decouple subspace by subspace.

The Modern Robotics Form

Lynch and Park (Eq. 11.61) write the hybrid law in a fully general, configuration-dependent form. With the constraint $A(\theta) \mathcal{V} = 0$ expressing the $k$ instantaneous twist-direction constraints from the environment, the projection matrix

\[\mathbf{P}(\boldsymbol{\theta}) \;=\; \mathbf{I} - \mathbf{A}^\top \big( \mathbf{A} \, \boldsymbol{\Lambda}^{-1} \mathbf{A}^\top \big)^{-1} \mathbf{A} \, \boldsymbol{\Lambda}^{-1}\]

is a rank-$(n - k)$ matrix that projects an arbitrary task wrench onto the subspace of wrenches that move the end-effector tangent to the constraints, while $\mathbf{I} - \mathbf{P}$ projects onto the subspace of wrenches that act against the constraints. The full hybrid law is

\[\boldsymbol{\tau} \;=\; \mathbf{J}^\top \!\!\left( \underbrace{ \mathbf{P}(\boldsymbol{\theta}) \big( \bar{\boldsymbol{\Lambda}}(\boldsymbol{\theta}) \tfrac{d}{dt}([\mathrm{Ad}_{X^{-1} X_d}] \mathcal{V}_d) + \mathbf{K}_p \mathbf{X}_e + \mathbf{K}_i \!\! \int \!\! \mathbf{X}_e dt + \mathbf{K}_d \mathcal{V}_e \big) }_{\text{motion control}} \;+\; \underbrace{ (\mathbf{I} - \mathbf{P}(\boldsymbol{\theta})) \big( \mathbf{F}_d + \mathbf{K}_{fp} \mathbf{F}_e + \mathbf{K}_{fi} \!\! \int \!\! \mathbf{F}_e dt \big) }_{\text{force control}} + \bar{\boldsymbol{\eta}}(\boldsymbol{\theta}, \mathcal{V}_b) \right).\]

Because $\mathbf{P}$ and $\mathbf{I} - \mathbf{P}$ are orthogonal projections, the closed-loop motion-error dynamics and the closed-loop force- error dynamics are independent on their respective subspaces; each inherits the analysis of the corresponding non-hybrid controller.

The Mills–Lokhorst / Mills Critique

The clean orthogonal-decomposition picture above is, however, sensitive to the correctness of $\mathbf{S}$ (or $\mathbf{P}$). Two subtle issues, raised historically by Duffy (1990) and analyzed by Mills, deserve mention:

  1. Frame consistency. The reciprocity condition $\mathbf{V}^\top \mathbf{F} = 0$ does not transform invariantly between coordinate frames when twists and wrenches are expressed in different units (e.g., mixing meters and centimeters or different angular units). Spong demonstrates this explicitly in Example 12.1: two vectors that appear orthogonal in one unit system fail to be orthogonal in another. The decomposition is therefore not, in general, geometrically intrinsic on $\mathrm{se}(3)$; it depends on a choice of inner product. Klein and Killing forms (Spong Eqs. 12.3–12.4) provide invariant alternatives at the price of giving up the simple Euclidean partitioning.

  2. Kinematic instability. When the constraint geometry is configuration- dependent — i.e., $\mathbf{S}$ or $\mathbf{A}$ varies with $\mathbf{q}$ — small errors in the constraint model can leak motion-controlled commands into the force-controlled subspace and vice versa, causing the two loops to fight one another. Lynch and Park describe practical remedies (Modern Robotics §11.6.2): estimate constraint directions online from force feedback, lower the gains to make both loops more tolerant of model error, or build passive compliance (e.g., remote center of compliance, series elastic actuators) into the hardware so that imperfect projection does not produce unbounded forces.

Explicit (Direct) Force Control

When a specific contact force is the task — e.g., apply 10 N normal to a surface while sliding along it — and the environment is sufficiently stiff to be treated as a rigid constraint, a direct force-control law with an inner motion loop is often the simplest and most effective architecture. Lynch and Park (Eq. 11.51) give the basic form

\[\boxed{ \; \boldsymbol{\tau} \;=\; \tilde{\mathbf{g}}(\boldsymbol{\theta}) + \mathbf{J}^\top(\boldsymbol{\theta}) \!\left( \mathbf{F}_d + \mathbf{K}_{fp} \mathbf{F}_e + \mathbf{K}_{fi} \!\! \int \!\! \mathbf{F}_e(t) \, dt \right) \; }\]

where $\mathbf{F}e = \mathbf{F}_d - \mathbf{F}{\text{tip}}$ is the wrench error, $\mathbf{K}{fp}, \mathbf{K}{fi}$ are positive-definite proportional and integral gain matrices, and $\tilde{\mathbf{g}}$ is the gravity-compensation model. (Acceleration and Coriolis terms are dropped because force-control tasks typically involve slow motion.)

Substituting this law into the static torque balance $\mathbf{g}(\boldsymbol{\theta}) + \mathbf{J}^\top \mathbf{F}_{\text{tip}} = \boldsymbol{\tau}$ yields the error dynamics

\[\mathbf{K}_{fp} \mathbf{F}_e + \mathbf{K}_{fi} \!\! \int \!\! \mathbf{F}_e \, dt \;=\; \mathbf{0},\]

whose derivative is $\mathbf{K}{fp} \dot{\mathbf{F}}_e + \mathbf{K}{fi} \mathbf{F}_e = \mathbf{0}$, which is asymptotically stable for positive-definite gains. (Modern Robotics Eqs. 11.52–11.53.) Why PI and not PD? Two reasons (Lynch–Park footnote 2, §11.5): force-sensor readings are too noisy to differentiate, and the model already treats torque-to-tip-force as a direct algebraic relationship with no intervening integrator, so derivative action would not stabilize anything.

A practical concern: if the robot is not in contact when the law is applied, nothing pushes back on $\mathbf{F}_d$ and the robot accelerates wildly in an attempt to generate the desired force from nothing. The standard remedy (Modern Robotics Eq. 11.54) is to add a velocity-damping term:

\[\boldsymbol{\tau} \;=\; \tilde{\mathbf{g}}(\boldsymbol{\theta}) + \mathbf{J}^\top \!\!\left( \mathbf{F}_d + \mathbf{K}_{fp} \mathbf{F}_e + \mathbf{K}_{fi} \!\! \int \!\! \mathbf{F}_e \, dt - \mathbf{K}_{\text{damp}} \mathcal{V} \right),\]

which limits free-space acceleration without affecting the steady-state contact behavior.

The Operational-Space Formulation (Khatib)

The hybrid and impedance formulations above were written somewhat ad hoc, mixing joint-space and task-space variables. Khatib (1987) gave the underlying geometry a unified form that has since become standard. The operational-space dynamics of the manipulator are obtained by transforming the joint-space equation $\mathbf{M}(\mathbf{q}) \ddot{\mathbf{q}} + \mathbf{C}(\mathbf{q}, \dot{\mathbf{q}}) \dot{\mathbf{q}} + \mathbf{g}(\mathbf{q}) = \boldsymbol{\tau} - \mathbf{J}^\top \mathbf{F}_e$ into the task space via $\ddot{\mathbf{x}} = \mathbf{J} \ddot{\mathbf{q}} + \dot{\mathbf{J}} \dot{\mathbf{q}}$. The result is

\[\boldsymbol{\Lambda}(\mathbf{x}) \ddot{\mathbf{x}} + \boldsymbol{\mu}(\mathbf{x}, \dot{\mathbf{x}}) + \mathbf{p}(\mathbf{x}) \;=\; \mathbf{F} - \mathbf{F}_e,\]

where $\mathbf{F}$ is the operational-space command wrench (the controller’s output) and

\[\boldsymbol{\Lambda}(\mathbf{x}) \;=\; \big( \mathbf{J}(\mathbf{q}) \, \mathbf{M}(\mathbf{q})^{-1} \, \mathbf{J}(\mathbf{q})^\top \big)^{-1}\]

is the task-space inertia matrix (sometimes called the pseudo-kinetic-energy matrix, the mobility tensor inverse, or simply $\boldsymbol{\Lambda}$). The terms $\boldsymbol{\mu}$ and $\mathbf{p}$ are the task-space Coriolis/centrifugal and gravity wrenches, related to their joint-space counterparts by

\[\boldsymbol{\mu}(\mathbf{x}, \dot{\mathbf{x}}) \;=\; \boldsymbol{\Lambda}(\mathbf{x}) \, \mathbf{J} \, \mathbf{M}^{-1} \, \mathbf{C} \, \dot{\mathbf{q}} \;-\; \boldsymbol{\Lambda}(\mathbf{x}) \, \dot{\mathbf{J}} \, \dot{\mathbf{q}}, \qquad \mathbf{p}(\mathbf{x}) \;=\; \boldsymbol{\Lambda}(\mathbf{x}) \, \mathbf{J} \, \mathbf{M}^{-1} \, \mathbf{g}.\]

The joint torque required to deliver an operational-space command wrench $\mathbf{F}$ is

\[\boldsymbol{\tau} \;=\; \mathbf{J}(\mathbf{q})^\top \mathbf{F},\]

which is exact for non-redundant manipulators and requires an additional null-space term for redundant ones (the dynamically consistent pseudoinverse).

The reason this formulation is conceptually clean is that every operational- space control law — pure motion, pure force, hybrid, impedance, admittance — can be written as a choice of $\mathbf{F}$ followed by the projection $\boldsymbol{\tau} = \mathbf{J}^\top \mathbf{F}$. For example, the motion control law $\mathbf{F} = \boldsymbol{\Lambda}(\mathbf{x}) \mathbf{a}_x + \boldsymbol{\mu} + \mathbf{p}$ with $\mathbf{a}_x = \ddot{\mathbf{x}}_d + \mathbf{K}_d \dot{\mathbf{e}} + \mathbf{K}_p \mathbf{e}$ yields a Cartesian PD-with-feedforward; the impedance control law of the previous section is recovered by an appropriate choice of $\mathbf{a}_x$; the hybrid control law follows by projecting $\mathbf{F}$ with $\mathbf{P}$ and adding a force component projected with $\mathbf{I} - \mathbf{P}$. The projection $\mathbf{J}^\top$ guarantees that no joint torque does work in directions that the task does not specify.

$\color{green}{\mathbf{Property.}}$ Operational-Space Inertia
The task-space inertia $\boldsymbol{\Lambda}(\mathbf{x}) = (\mathbf{J} \mathbf{M}^{-1} \mathbf{J}^\top)^{-1}$ is symmetric and positive definite whenever $\mathbf{J}$ has full row rank (i.e., away from kinematic singularities). It characterizes the *apparent inertia of the end-effector* as seen from the task space: a unit acceleration $\ddot{\mathbf{x}}$ in direction $\mathbf{u}$ requires a wrench $\boldsymbol{\Lambda}(\mathbf{x}) \mathbf{u}$, even if the joints themselves are massless or massive. This is the matrix the impedance designer would *like to make appear as* $\boldsymbol{\Lambda}_d$.


Practical Considerations

The clean theory above papers over several engineering difficulties that dominate the design of any real interaction controller.

Force-sensor noise and bandwidth. Six-axis wrist sensors are based on strain gauges, which are noisy at the bandwidths relevant for control ($\sim$ kHz). Aggressive differentiation is impossible (this is why force-control laws are typically PI, not PID), and gravity-compensation of the sensor — removing the weight of the end-effector and any tools rigidly mounted to it — must be performed in real time using calibrated mass and centre-of-mass parameters. Failure to compensate the sensor’s own gravity bias produces a constant phantom wrench that the controller will dutifully try to reject.

Contact transition. The most dangerous moment in any force-controlled task is the instant of first contact. The robot moves at finite velocity in free space; the moment it touches the surface, the dynamics change abruptly from the free-motion equation to the constrained equation. If the impact velocity is high, the resulting force impulse can exceed the saturation of the sensor and the actuators. Practical countermeasures include reducing the approach velocity, adding a guarded move that switches to force control upon detection of a threshold force, and building passive compliance into the wrist (compliant mounts, series elastic actuators) so that the impulse is absorbed mechanically.

Passivity for safety. A fundamental result in interaction control is that an interconnection of two passive one-ports is unconditionally stable. If the controlled robot can be shown to render a passive impedance — i.e., one that does not generate energy — then coupling it to any passive environment (which includes essentially all physical surfaces) cannot destabilize the closed loop. This passivity argument is the formal justification for choosing the apparent inertia, damping, and stiffness matrices $\boldsymbol{\Lambda}_d, \mathbf{D}_d, \mathbf{K}_d$ in impedance control to be symmetric and positive definite: any $\mathbf{Z}_r(s)$ of the form $\boldsymbol{\Lambda}_d s + \mathbf{D}_d + \mathbf{K}_d / s$ with these properties is passive (Hogan 1988; Colgate–Hogan 1989). Time delays, sensor quantization, and discrete-time effects can, however, destroy passivity even when the continuous-time controller is passive; this is one of the main reasons admittance-controlled robots can become unstable when in contact with very stiff environments.

When to pick which strategy. A useful (if rough) decision tree, distilled from Lynch and Park:

  • Free-motion task, no contact expected: pure motion control. Position control suffices.
  • Light intermittent contact (handshake, polishing soft surfaces): impedance control with low stiffness; no force setpoint needed.
  • Compliant or unknown environment, must absorb disturbances: impedance control if the robot is backdrivable; admittance control otherwise.
  • Specific contact-force setpoint on a stiff surface: explicit force control with PI feedback and inner damping, or hybrid position/force control if motion components are also specified.
  • Rigid environment with well-known constraint geometry (peg-in-hole, cabinet door): hybrid position/force with carefully designed projections and, ideally, passive compliance.

Summary

Position-controlled robots are mechanically hard: any deviation from the commanded trajectory produces a restoring force proportional to the position gain. In contact with a stiff environment this is catastrophic — small position errors generate dangerous contact forces. Interaction control reframes the problem: instead of dictating a trajectory, the controller dictates a dynamic relationship at the port of contact.

Mason’s natural/artificial constraint formalism partitions every contact task into orthogonal motion-controlled and force-controlled subspaces, captured by selection matrices $\mathbf{S}$ and $\mathbf{I} - \mathbf{S}$ satisfying the reciprocity condition $\mathbf{V}^\top \mathbf{F} = 0$. Stiffness/compliance control tunes the Cartesian gain matrix to trade position accuracy for force moderation. Hogan’s impedance control generalizes this to a full second-order target $\boldsymbol{\Lambda}d \ddot{\mathbf{e}} + \mathbf{D}_d \dot{\mathbf{e}} + \mathbf{K}_d \mathbf{e} = \mathbf{F}{\text{ext}}$, realized through inverse-dynamics plus a particular outer-loop choice; the robot does not track a force setpoint but renders an impedance. Admittance control is the dual: sense force, command motion. The Raibert–Craig hybrid architecture runs motion and force loops on complementary subspaces; Modern Robotics gives the general projection-matrix form. Explicit force control closes a PI loop on force error with damping for free-space safety. Khatib’s operational-space formulation expresses the entire family — motion, impedance, hybrid — as choices of an end-effector wrench mapped to joint torques by $\mathbf{J}^\top$, with the task-space inertia $\boldsymbol{\Lambda}(\mathbf{x}) = (\mathbf{J} \mathbf{M}^{-1} \mathbf{J}^\top)^{-1}$ playing the role of effective mass. The engineering realities — sensor noise, contact transition, passivity for stability — determine which of these strategies is most appropriate in any given application.

Reference

[1] Mark W. Spong, Seth Hutchinson, and M. Vidyasagar, Robot Modeling and Control, 2nd ed., Wiley, 2020 — Chapter 12 (“Force Control”).
[2] Bruno Siciliano, Lorenzo Sciavicco, Luigi Villani, and Giuseppe Oriolo, Robotics: Modelling, Planning and Control, Springer, 2009 — Chapter 9 (“Force Control”).
[3] Kevin M. Lynch and Frank C. Park, Modern Robotics: Mechanics, Planning, and Control, Cambridge University Press, 2017 — Chapter 11.5 (“Force Control”), 11.6 (“Hybrid Motion–Force Control”), 11.7 (“Impedance Control”).
[4] Matthew T. Mason, “Compliance and Force Control for Computer Controlled Manipulators”, IEEE Transactions on Systems, Man, and Cybernetics, vol. SMC-11, no. 6, 1981.
[5] Marc H. Raibert and John J. Craig, “Hybrid Position/Force Control of Manipulators”, Journal of Dynamic Systems, Measurement, and Control, vol. 102, no. 2, pp. 126–133, 1981.
[6] Neville Hogan, “Impedance Control: An Approach to Manipulation. Parts I, II, III”, Journal of Dynamic Systems, Measurement, and Control, vol. 107, no. 1, pp. 1–24, 1985.
[7] Oussama Khatib, “A Unified Approach for Motion and Force Control of Robot Manipulators: The Operational Space Formulation”, IEEE Journal of Robotics and Automation, vol. 3, no. 1, pp. 43–53, 1987.
[8] Robert J. Anderson and Mark W. Spong, “Hybrid Impedance Control of Robotic Manipulators”, IEEE Journal of Robotics and Automation, vol. 4, no. 5, pp. 549–556, 1988.
[9] J. Edward Colgate and Neville Hogan, “Robust Control of Dynamically Interacting Systems”, International Journal of Control, vol. 48, no. 1, pp. 65–88, 1988.
[10] Joseph Duffy, “The Fallacy of Modern Hybrid Control Theory that is Based on ‘Orthogonal Complements’ of Twist and Wrench Spaces”, Journal of Robotic Systems, vol. 7, no. 2, pp. 139–144, 1990.

Leave a comment