Definition
Impedance control makes a robot's end-effector behave like a mechanical mass-spring-damper system, rather than rigidly tracking a position trajectory. When the robot contacts an object or a person, it yields compliantly — like pushing against a spring — instead of forcing its way through. The controller specifies desired stiffness (how much force per unit displacement), damping (how much force per unit velocity), and optionally inertia (how much force per unit acceleration). These parameters can be set independently for each Cartesian axis, allowing the robot to be stiff in one direction (e.g., pressing down for polishing) and soft in another (e.g., sliding along the surface).
The concept was introduced by Neville Hogan at MIT in 1985 and has become the foundation of safe human-robot interaction, compliant assembly, and contact-rich manipulation. Unlike pure position control (which ignores forces) or pure force control (which ignores position), impedance control regulates the relationship between force and motion. This duality makes it uniquely suited for tasks where the robot must interact with uncertain or changing environments.
Impedance control is not just a safety feature — it is a fundamental enabler of dexterous manipulation. Inserting a peg into a hole, wiping a surface, opening a door, and handing an object to a person all require the robot to modulate its compliance in response to contact forces. Without impedance control, these tasks require extremely precise position control or elaborate force-feedback loops that are fragile and slow.
How It Works
The core equation of impedance control relates the contact force F to the deviation from a desired trajectory:
F = M(ẍ - ẍd) + D(ẋ - ẋd) + K(x - xd)
Here, K is the stiffness matrix (N/m), D is the damping matrix (Ns/m), M is the inertia matrix (kg), x is the actual position, and xd is the desired position. When no external force is applied, the robot follows the desired trajectory. When contact occurs, the robot deviates from the trajectory proportionally to the applied force, governed by the impedance parameters.
To implement impedance control, the robot must be able to command joint torques (not just joint positions). The controller computes the desired Cartesian impedance behavior, transforms it to joint space using the robot's Jacobian, and sends torque commands to the actuators. This requires torque-controlled (or current-controlled) actuators and an accurate dynamic model of the robot for gravity compensation and inertia decoupling.
In practice, most implementations simplify by setting M = 0 (no inertia shaping), leaving only stiffness and damping as tunable parameters. Critical damping (D = 2√(KM)) prevents oscillation and is the most common default.
Impedance vs Admittance Control
Impedance and admittance control are dual approaches to the same goal of compliant behavior, but they differ in implementation and hardware requirements:
- Impedance control measures motion (position/velocity) and commands force (torque). It requires torque-controlled actuators (Franka Panda, KUKA iiwa, Unitree arms). The robot is inherently compliant — you can push it by hand and it yields. Best for precise, low-force interactions.
- Admittance control measures force (via F/T sensor) and commands motion (position). It works with position-controlled robots (UR, Fanuc, ABB) that cannot accept direct torque commands. The outer loop reads the F/T sensor and adjusts the position setpoint to accommodate the measured force. Response is slower than true impedance control due to the position control inner loop, but it is compatible with a wider range of hardware.
The choice depends on your robot hardware. If you have a torque-controlled arm, impedance control provides faster, more natural compliance. If you have a position-controlled arm with an F/T sensor, admittance control is your only option for compliance.
Key Parameters
Stiffness (K): Measured in N/m for translation, Nm/rad for rotation. High stiffness (1000+ N/m) makes the robot resist displacement — good for precision tasks. Low stiffness (50–200 N/m) allows the robot to yield easily — good for safe interaction and surface following. Typical range for collaborative tasks: 100–500 N/m.
Damping (D): Controls energy dissipation. Too little damping causes oscillation; too much makes motion sluggish. Critical damping D = 2√(KM) is the starting point. Some applications benefit from under-damped behavior (gentle oscillation during surface exploration) or over-damped behavior (smooth, slow settling).
Inertia (M): Rarely tuned in practice. Shaping apparent inertia requires accurate dynamic models and high-bandwidth torque control. Most implementations use the robot's natural inertia.
Variable impedance: Advanced controllers adjust K and D online based on task phase or sensory feedback. For example: high stiffness during approach, low stiffness during contact search, medium stiffness during insertion. Variable impedance can be hand-tuned (state machine) or learned from demonstrations using imitation learning.
When to Use Impedance Control
Use impedance control for: Peg-in-hole insertion, surface polishing/sanding, door opening, human-robot handovers, compliant assembly, teleoperation with force feedback, any task where the robot must make and maintain contact with uncertain environments.
Use position control for: Pick-and-place in structured environments, high-speed motion in free space, tasks where contact is unexpected (the robot should stop, not comply). Position control is simpler, faster, and more precise when no contact is expected.
Supported robots: Franka Emika Panda (the gold standard for impedance control research), KUKA iiwa, Unitree Z1/B2-W arms, Kinova Gen3 (admittance mode). Most industrial robots (UR, Fanuc, ABB) support admittance control through external F/T sensors but not native impedance control.
Stiffness Matrix Design
In 6-DOF Cartesian impedance control, the stiffness K is a 6x6 matrix relating displacement in all six degrees of freedom (3 translational + 3 rotational) to force and torque. For most applications, this matrix is diagonal, with independent stiffness values for each axis:
K = diag(Kx, Ky, Kz, Krx, Kry, Krz)
Typical values for collaborative manipulation: translational stiffness 100–1000 N/m, rotational stiffness 10–100 Nm/rad. Low translational stiffness (50–200 N/m) creates a robot that yields easily to contact — suitable for human-robot handover and surface exploration. High stiffness (500–2000 N/m) makes the robot resist displacement — suitable for precision assembly where position accuracy matters.
Off-diagonal terms in K couple different axes (e.g., lateral displacement produces vertical force). These are rarely used in practice but can encode task-specific coupling for tasks like screw insertion where rotation and translation are inherently coupled. The full 6x6 stiffness matrix must be symmetric and positive semi-definite to ensure passive (energy-dissipating) behavior.
For learned variable impedance policies, the neural network outputs K and D values at each timestep alongside position targets. This allows the policy to automatically select high stiffness during free-space motion and low stiffness during contact search and insertion, without hand-coding task phase detection.
Implementation in ROS2
Impedance control on ROS2-supported arms typically follows one of two patterns:
Native torque-controlled arms (Franka, KUKA iiwa): The manufacturer provides a real-time controller that accepts Cartesian impedance parameters (K, D, desired pose) via ROS2 topics or services. The controller runs at 1 kHz in a real-time loop, computing gravity compensation, Coriolis terms, and impedance torques. The Franka ros2_control interface (franka_ros2) exposes Cartesian impedance as a standard controller plugin.
Position-controlled arms with admittance (UR, ABB): An outer-loop admittance controller reads the wrist F/T sensor, computes a position offset proportional to the measured force, and adds it to the commanded trajectory. This runs at 125–500 Hz in a ROS2 node, commanding the robot's native position controller. The ros2_controllers package includes an admittance_controller plugin that integrates with any ros2_control-compatible hardware interface.
Both approaches require careful tuning. Too-aggressive admittance gains cause instability; too-conservative gains make the robot feel stiff despite the compliance layer. SVRC provides pre-tuned impedance/admittance configurations for OpenArm 101, UR5e, and Franka Panda at our data services facilities.
See Also
- Data Services — Contact-rich manipulation data collection with impedance-controlled arms
- Repair and Maintenance — Impedance tuning and controller setup for your robot
- Hardware Catalog — Torque-controlled and position-controlled arms available at SVRC
Key Papers
- Hogan, N. (1985). "Impedance Control: An Approach to Manipulation." ASME Journal of Dynamic Systems, Measurement, and Control. The foundational paper that introduced impedance control and the concept of regulating the force-motion relationship rather than force or motion independently.
- Buchli, J., Stulp, F., Theodorou, E., & Schaal, S. (2011). "Learning Variable Impedance Control." IJRR 2011. Demonstrated that optimal impedance profiles can be learned from demonstration data, enabling robots to adapt compliance to different task phases automatically.
- Luo, J. & Solowjow, E. et al. (2024). "Serl: A Software Suite for Sample-Efficient Robotic Reinforcement Learning." ICRA 2024. Used impedance control as the underlying action space for sample-efficient RL on contact-rich manipulation tasks, showing that the right control abstraction dramatically reduces the learning problem.
Related Terms
- Force-Torque Sensing — Provides the contact force measurements that drive admittance control
- End-Effector — The contact point where impedance behavior is defined
- Teleoperation — Impedance control enables force-reflective bilateral teleoperation
- Policy Learning — Learned policies that output variable impedance parameters
- Sim-to-Real Transfer — Accurate impedance simulation is critical for policy transfer
Implement Compliant Control at SVRC
Silicon Valley Robotics Center provides Franka Panda and KUKA iiwa arms with native impedance control, F/T sensor integration for admittance control on UR and other position-controlled robots, and expert guidance on tuning impedance parameters for your specific contact-rich tasks.