---
kind: concept
slug: impedance-control
title: Impedance control
summary: >-
  Control that makes a robot act like a spring and damper toward its environment, so contact force follows from stiffness and damping. Four cards: task-space reaching with a contact test, a rehabilitation teleoperation pair, co-manipulation with a stiffness hand-over, and joint-space impedance under a learned policy. Evidence is author-reported, mostly qualitative.
tags: [robot-control, compliance, manipulation, torque-control, teleoperation]
papers: ["2610.05695", "2412.03619", "2412.13474", "2509.17053"]
related: [model-predictive-control, control-barrier-function, virtual-model-control, disturbance-observer, teleoperation, human-in-the-loop, imitation-learning, action-chunking, digital-twin]
status: draft
updated_at: 2026-11-01
---

## Overview

Impedance control shapes how a robot responds to contact. Rather than only
commanding a position, the controller gives the end effector a virtual spring
and damper. A push from the environment then produces a force that follows from
the chosen stiffness and damping [arxiv:2610.05695 §2.2]. Each card uses this
idea differently. [arxiv:2610.05695 §2.2] frames its reaching design as classical
PD control in end-effector space. [arxiv:2412.03619 §II-A] uses a Cartesian
mass-damper-spring law with an estimated robot model, so no force sensor is
needed. [arxiv:2412.13474 §5.1] uses a spring only as the execution layer of a
planned trajectory, with stiffness set to zero when the robot should yield.
[arxiv:2509.17053 §4.1] runs a joint-space spring and damper at 2 kHz beneath a
learned policy that updates its targets at 25 Hz.

The controller in [arxiv:2610.05695] is a virtual model controller. Each
spring-damper force is mapped to joint torques through the transpose of the
Jacobian at its attachment point, and no inverse kinematics is used
[arxiv:2610.05695 eq. 1] [arxiv:2610.05695 §3]. The card lists both
`impedance-control` and [virtual-model-control](/concepts/virtual-model-control).
The variants below are spring-damper designs, and the same mapping underlies
the other cards except the joint-space one, which works on joint errors
directly.

## Variants

### Spring-damper reaching in end-effector space

A spring of stiffness $k$ and a damper of damping $c$ join the end effector to
a desired position. The force is $k x + c \dot{x}$, with $x$ the error from end
effector to target [arxiv:2610.05695 eq. 2]. Orientation uses rotational springs
and dampers in the same way [arxiv:2610.05695 §2.2]. On hardware the paper uses
15 and 45 N/m stiffness with 1.5 Ns/m damping [arxiv:2610.05695 §4.1]. Card:
[Virtual model control for compliant reaching under uncertainties](/papers/2610.05695).

### Moving reference

The target moves on a straight line from start to goal. A scalar ramps from zero
to one in finite time, and the spring law is applied to the moving target
[arxiv:2610.05695 §2.2]. The paper says this limits the force needed over long
distances [arxiv:2610.05695 §2.2]. The card's experiments use 0.1 and 0.5 m/s
reference speeds [arxiv:2610.05695 §4.1].

### Force-driven reaching

A virtual cart with mass and viscous friction is attached to the end effector
through a spring and damper. A constant force pulls the cart along the path. If
the end effector is blocked, the cart stops too, so the robot force is bounded
by that pull [arxiv:2610.05695 §2.2]. Cart mass and friction are not stated,
and the card reports no test result for this design.

### Repulsive obstacle springs

Each obstacle connects to the end effector through a nonlinear spring and
damper. Stiffness and damping grow as the separation shrinks, and forces from
several obstacles add up [arxiv:2610.05695 §2.3]. The card gives one
piecewise stiffness law, with a 0 N/m stiffness beyond 20 cm, that the paper
uses in its experiments [arxiv:2610.05695 §4.2]. The damping law is not stated.

### Model-based task-space impedance with a disturbance observer

The joint torque has two parts. A feedforward term uses estimated inertia,
Coriolis and gravity terms to follow the desired motion. A feedback term applies
the Cartesian spring and damper, mapped by the Jacobian transpose
[arxiv:2412.03619 eq. 3] [arxiv:2412.03619 eq. 7]. For the rehabilitation
robots the stiffness is 30 I on the master and 20 I on the second robot, and the
damping is 2 times the square root of that stiffness, written 2√30 I and 2√20 I
[arxiv:2412.03619 tab. 2]. A nonlinear disturbance observer lumps model error,
friction and external forces into one term and cancels it
[arxiv:2412.03619 eq. 9] [arxiv:2412.03619 §II-C]. The authors adapt the
observer from an earlier design and give no proof in the card. Card:
[A Teleoperation System with Impedance Control and Disturbance Observer for Robot-Assisted Rehabilitation](/papers/2412.03619).

### Bilateral teleoperation with a virtual spring on the master

The leader ("master") robot renders a force to the operator. That force is a
virtual spring, mapped through the Jacobian transpose, driven by the position
difference between the master and the second robot's end effector. No force
sensor is used, and the second robot's position is sent back over UDP
[arxiv:2412.03619 eq. 8] [arxiv:2412.03619 §II-B]. The card does not state the
force-feedback stiffness [arxiv:2412.03619 §II-B].

### Free physical interaction mode with damping only

In free human interaction, the desired point is set to the current end-effector
position. The torque then reduces to damping plus gravity compensation, so a
person can move the arm freely [arxiv:2412.03619 eq. 5] [arxiv:2412.03619 §II-A].
The paper turns the disturbance observer off on the master in this mode
[arxiv:2412.03619 §V]. A backdrivable haptic device does not need the damping
term, which the paper notes [arxiv:2412.03619 §II-A].

### Trajectory tracked by a high-stiffness spring, with hand-over

A planner predicts the human's goal from the first 0.2 s of motion and outputs
a Cartesian trajectory. The robot starts with zero translational stiffness. The
trajectory is sent as the rest position of an impedance controller with
stiffness [0, 0, 400] N/m and run without replanning [arxiv:2412.13474 §5.1].
In the handover task, the robot keeps 400 N/m until a predicted transition
point and then sets it to 0 [arxiv:2412.13474 §5.2]. The rotational stiffness
is "kept high" but its value is not stated [arxiv:2412.13474 §5.1]. Card:
[Planning Human-Robot Co-manipulation with Human Motor Control Objectives and Multi-component Reaching Strategies](/papers/2412.13474).

### Joint-space impedance under a learned policy, with estimated force

A policy follows the [action chunking](/concepts/action-chunking) design of ACT
and outputs 6-DOF end-effector targets at 25 Hz [arxiv:2509.17053 §4.1]. Each
target is converted by real-time inverse kinematics to joint targets $\hat q$,
whose method the paper does not state. A joint-space law then runs at 2 kHz
[arxiv:2509.17053 eq. 5] [arxiv:2509.17053 §4.1]:

$$ \tau_{cmd} = B(\hat v - v) + K(\hat q - q) + \hat\tau $$  [arxiv:2509.17053 eq. 5]

The target velocity $\hat v$ is zero, $\hat\tau$ is a gravity and Coriolis
feedforward refreshed at 250 Hz, and the gains $K$ and $B$ are fixed presets
whose values are not stated [arxiv:2509.17053 §4.1]. The paper leaves variable
impedance to future work [arxiv:2509.17053 §6]. The law has no inertia term,
because the tasks are treated as quasi-static [arxiv:2509.17053 §4.1].

Eq. 5 contains no force term. The estimated wrench reaches the arm only through
the policy's targets, and the policy takes the wrench as an input. The wrench is
the difference between measured joint torques and the torque a
[digital twin](/concepts/digital-twin) needs at zero acceleration, mapped
through a Jacobian pseudo-inverse [arxiv:2509.17053 eq. 6] [arxiv:2509.17053 §4.2].
The paper gives no damping for the pseudo-inverse, so the estimate can grow near
singularities [arxiv:2509.17053 §4.2]. Card:
[FILIC: Dual-Loop Force-Guided Imitation Learning with Impedance Torque Control for Contact-Rich Manipulation Tasks](/papers/2509.17053).

## When to use which

| Situation | Use | Why |
|---|---|---|
| A person or unseen object may block the arm | Spring-damper reaching, with a moving reference | A human hand blocked the arm at 40 cm. Peak contact force was up to 4.53 N, against 35.77 N for an IK-based PID baseline [arxiv:2610.05695 §4.3]. The baseline gains are not stated, so treat this as one comparison |
| Long moves where peak force should stay low | Moving reference | Compared with simple reaching, the paper reports lower peak force and less lateral deviation [arxiv:2610.05695 §4.1] |
| The arm must reach the goal exactly | Not shown by these cards | The paper reports a final error of about 5 cm for the moving reference [arxiv:2610.05695 §4.1] and gives no other accuracy figure. The teleoperation card reports no tracking-error numbers [arxiv:2412.03619 §IV] |
| Force needs a hard cap | Force-driven cart | The robot force is bounded by the cart's pull [arxiv:2610.05695 §2.2], but the card gives no measured result and no cart parameters |
| Unknown obstacles on the path | Repulsive obstacle springs | The arm avoided a known obstacle and an undetected plate in the card's tests [arxiv:2610.05695 §4.2] [arxiv:2610.05695 §4.3]. Results are qualitative |
| Low stiffness | Raise stiffness only with a friction check | At 15 N/m the spring force at the end of the reach did not overcome friction, and 45 N/m gave smaller error and faster motion [arxiv:2610.05695 §4.1] |
| A human operator should feel a remote contact, with no force sensor | Bilateral teleoperation with a virtual spring | The master renders force from position error alone [arxiv:2412.03619 §II-B]. Rendered force against a wall is about −7 N to 7 N, with no baseline [arxiv:2412.03619 §IV-D]. The paper's tests are qualitative, with one author and no tracking metric |
| The model is rough and friction or external force disturb the arm | Add a disturbance observer | The paper lumps model error, friction and external forces into one estimate [arxiv:2412.03619 eq. 9]. The with-and-without comparison is by plot only [arxiv:2412.03619 §IV-A] |
| A person and a robot carry a load and the robot must yield at a predicted point | Stiffness hand-over, 400 N/m then 0 | The card reports no velocity jump in the plots but gives no numeric bound [arxiv:2412.13474 §5.2] [arxiv:2412.13474 fig. 9]. One operator, five trials per goal [arxiv:2412.13474 §5.1] |
| Free human guidance, with the robot backdrivable | Damping-only mode | The torque reduces to damping plus gravity compensation [arxiv:2412.03619 eq. 5]. Mode switching has no transition procedure in the card [arxiv:2412.03619 §V] |
| Contact-rich task with a learned policy, and no wrist force/torque sensor | Joint-space impedance under a policy with estimated force input | Simulated peg insertion rose from 68.0% to 90.0% when estimated force was added to position input [arxiv:2509.17053 tab. 2]. Four real tasks rose from 26.6–46.7% to 76.6–83.3% [arxiv:2509.17053 tab. 3]. The card's comparisons vary only the policy input [arxiv:2509.17053 §5.4], so they do not isolate the impedance loop. The estimator needs an accurate arm model, and its accuracy test uses static loads reported only in a figure [arxiv:2509.17053 §5.1] [arxiv:2509.17053 fig. 4] |

## Implementation sketch

The sketch follows the spring-damper core of the card's equations. The damping
sign assumes a static target, which is our reading of [eq. 2]. The paper's
notation for a moving target is unclear (see Contradictions). The model-based
variant adds feedforward terms with estimated inertia, Coriolis and gravity
[arxiv:2412.03619 eq. 3], and the card's own pseudocode gives that form.

```pseudocode
# One impedance step for a single end-effector spring-damper  [eq. 2]
# Input:  q, dq (joint state), x_d (target), k, c (gains)
# Output: tau (joint torques)

def impedance_step(q, dq, x_d, k, c):
    # Pose and Jacobian at the current joint state  [§3]
    x_ee, J = forward_kinematics(q)
    # End-effector velocity in task space  [§3]
    dx_ee = J @ dq
    # Error from end effector to target, and its rate  [eq. 2]
    err = x_d - x_ee
    d_err = -dx_ee  # static target only
    # Virtual spring-damper force  [eq. 2]
    f = k * err + c * d_err
    # Map the force to joint torques  [eq. 1]
    tau = J.T @ f
    return tau
```

Converting torque to motor current is a hardware step. The paper uses a linear
approximation from the motor's performance graph [arxiv:2610.05695 §3]. It is
not included here.

The joint-space variant [arxiv:2509.17053 eq. 5] drops the Jacobian. Compute
the torque as damping times the negative joint velocity, plus stiffness times
the joint error to the IK target, plus the feedforward term. The IK step that
produces the target is not stated in the paper, so it needs its own choice.

## Contradictions

The cards disagree on sign conventions, on how the target is reached, and on
gains. Each side is cited below, and neither is resolved here.

- The damping term for a moving target is ambiguous. [eq. 2] uses the error
  rate, and the text does not say whether the target's velocity is included
  [arxiv:2610.05695 §2.2].
- The card attributes the 5 cm error of the moving reference to low stiffness,
  as in the previous case. That previous case used 15 N/m, while the moving
  reference run used 45 N/m [arxiv:2610.05695 §4.1].
- The stiffness and damping notation for obstacles is inconsistent between
  [§2.3] and the text under it, and the unit of distance in the piecewise law
  is inferred to be centimetres [arxiv:2610.05695 §4.2].
- Within the teleoperation card, the error terms have opposite signs in its
  impedance law and its control law. [eq. 2] writes the errors as (ẋ − ẋd) and
  (x − xd), while [eq. 3] writes them as (ẋd − ẋ) and (xd − x). The text does
  not reconcile them, and the card's pseudocode follows [eq. 3]
  [arxiv:2412.03619 eq. 2] [arxiv:2412.03619 eq. 3].
- Across cards, the stiffness values are not comparable. [arxiv:2610.05695 §4.1]
  uses 15 and 45 N/m on a humanoid arm, [arxiv:2412.03619 tab. 2] uses 20 and
  30 on two planar rehabilitation robots, and [arxiv:2412.13474 §5.1] uses
  400 N/m on a Franka arm. [arxiv:2509.17053 §4.1] gives no gain values at all,
  and its law acts on joint errors rather than Cartesian ones. The tasks and
  robots differ, so the cards do not show which stiffness is better.
- The reaching card uses no inverse kinematics [arxiv:2610.05695 §3]. The FILIC
  card converts each policy target to joint targets with real-time inverse
  kinematics [arxiv:2509.17053 §4.1]. The two designs reach a goal in different
  ways, and neither card compares them.
- The teleoperation card's force-feedback gain is named but not valued
  [arxiv:2412.03619 eq. 8], so its rendered force ranges cannot be reproduced
  from the card alone [arxiv:2412.03619 §IV-D].

## Papers

- [Virtual model control for compliant reaching under uncertainties](/papers/2610.05695): spring-damper virtual models mapped to joint torques for reaching, moving-reference and obstacle designs, with a contact test on a humanoid arm.
- [A Teleoperation System with Impedance Control and Disturbance Observer for Robot-Assisted Rehabilitation](/papers/2412.03619): bilateral teleoperation of two planar rehabilitation robots with impedance control and a nonlinear disturbance observer, with free and recorded motion modes; qualitative results.
- [Planning Human-Robot Co-manipulation with Human Motor Control Objectives and Multi-component Reaching Strategies](/papers/2412.13474): a planner that predicts the human goal and hands over authority at a predicted point by setting an impedance stiffness to zero; one operator, qualitative results.
- [FILIC: Dual-Loop Force-Guided Imitation Learning with Impedance Torque Control for Contact-Rich Manipulation Tasks](/papers/2509.17053): a 25 Hz learned policy over a 2 kHz joint-space impedance loop, with force estimated from joint torques and a digital twin; author-reported success gains, gains not stated.
