Force Control and the Missing Layer in Embodied Intelligence
Published:
This post supports English / 中文 switching via the site language toggle in the top navigation.
A Gap I Didn’t Know I Had
Late one night, over grilled skewers, a friend who builds control systems for robotic arms said something that stuck with me: most people doing embodied AI algorithms have no real picture of what the arm is doing below the policy level. They send out position targets, the arm moves, and they treat everything in between as a solved problem — a hardware detail.
He was right. I was one of those people.
We ended up spending the rest of the night talking through admittance control, impedance control, the MIT control protocol, and what all of it might mean for how embodied intelligence should be designed. This post is an attempt to write down what I learned, and where I think it leads.
Two Ways to Think About Control
The vocabulary is slightly confusing because the words “admittance” and “impedance” mean something specific in control engineering that does not map cleanly onto “admittance control” and “impedance control” as strategies. Let me try to be precise.
Admittance and impedance as system properties describe the same thing from opposite directions. A high-impedance system resists force — push on it and it doesn’t move much. A high-admittance system yields readily to force — push on it and it deforms easily. The two are inverses of each other: high impedance means low admittance, and vice versa.
When we talk about admittance control and impedance control as strategies, we are talking about something different — about what the controller is designed to regulate.
Admittance control targets force directly. The controller drives the robot to whatever position is necessary to produce the desired contact force. Position is just the means; force is the goal. If you want the finger to press against a surface with 2 N, the controller moves the joint until that force is achieved, backed by a force sensor or tactile feedback. This is the way human hands actually work: we sense force at our fingertips and adjust grip accordingly, largely ignoring the precise angular position of our joints.
Impedance control does not target either force or position directly. Instead, it specifies a dynamic relationship between position error and force. The robot is told to behave as if it were a mechanical system with a particular stiffness, damping, and effective inertia — a virtual mass-spring-damper. The classic formulation looks like:
\[F = M \ddot{x}_e + B \dot{x}_e + K x_e\]where \(x_e\) is the position error and \(F\) is the contact force. The controller does not say “go to position X” or “produce force F.” It says “if you are displaced by \(x_e\), respond as if this were a spring.” The result is a robot that has a calibrated compliance — it gives way smoothly under unexpected contact rather than either holding rigid or going limp.
Impedance control is sometimes mislabeled “force-position hybrid control,” which is misleading. Traditional hybrid control switches between force and position control on different axes or at different moments. Impedance control is neither — it defines a behavioral contract between displacement and force that holds continuously.
The MIT Protocol and What It Actually Encodes
The MIT mini-cheetah control protocol, widely used in embodied AI robots (including arms like those from Damiao/DM) and quadrupeds, is a good lens for understanding impedance control in practice. The control law is:
\[\tau = K_p (q_d - q) + K_d (\dot{q}\_d - \dot{q}) + \tau\_{ff}\]where \(q_d\) and \(\dot{q}_d\) are target position and velocity, \(q\) and \(\dot{q}\) are current position and velocity, \(K_p\) and \(K_d\) are stiffness and damping gains, and \(\tau_{ff}\) is a feedforward torque.
At first glance this looks like a standard PD controller with a feedforward term. But looking at each piece reveals something more:
The \(K_d(-\dot{q})\) term (when target velocity is zero) is a pure damping term that dissipates energy from the system. This is not incidental — it is precisely the definition of mechanical damping, and it prevents oscillation without needing a separate velocity loop.
The \(\tau_{ff}\) term is where gravity compensation and friction compensation live. If you have a model of the robot’s dynamics, you can cancel the forces that would otherwise bias the position. But critically, this term is also a torque command in its own right. If you zero out \(K_p\) and \(K_d\), what remains is a direct current (torque) command. The motor’s inner current loop closes around this, making \(\tau_{ff}\) a direct handle on the robot’s output force.
The overall law encodes the mass-spring-damper relationship. \(K_p\) is the virtual spring stiffness; \(K_d\) is the virtual damper. Together they define how the joint responds to displacement, which is exactly what impedance control means.
This is different from the classical cascaded three-loop architecture (position loop → velocity loop → current loop), where each loop’s output is the next loop’s reference. In the MIT scheme, position error, velocity error, and feedforward torque combine in parallel to produce the final torque command. The inner current loop still exists inside the motor drive, but the outer control law is not cascaded — it is a single composed expression.
The practical implication is compliance: if the robot cannot reach a target position because an obstacle is in the way, it does not stall out or fight — it exerts a force proportional to how far off it is, and yields when that force is exceeded.
Why Embodied AI Researchers Don’t Need to Know This — And Why They Should
Here is the interesting part.
Most current embodied AI systems use position control as their action space. The policy outputs target joint angles; the low-level controller executes them. This works, partly because of a subtle cancellation that happens in end-to-end learning.
With impedance-based controllers, there is a systematic gap between commanded positions and achieved positions — caused by gravity, friction, and the compliance of the controller itself. But because the same gap exists during data collection (teleoperation) and during policy deployment, the policy learns to anticipate it. If the arm consistently ends up 5 degrees short of the commanded angle, the policy simply learns to command 5 degrees further. The error is absorbed into the learned behavior rather than corrected at the control level.
This is why embodied AI does not, in practice, need the kind of meticulous gravity compensation and friction identification that industrial robot programming demands. Classical industrial arms are programmed with explicit motion plans that assume the arm reaches exactly where it is told. For that to work, every systematic error must be identified and corrected. Embodied AI, using a closed-loop learned policy, gets around this by treating the entire robot + controller as a black box whose behavior the policy learns to invert.
The gap, in other words, is real but harmless — as long as train and deploy environments are consistent.
This is also why embodied AI researchers rarely develop deep knowledge of robot dynamics. They do not need to. But that invisibility has a cost: when it matters — in sim-to-real transfer, in hardware changes, in unusual contact scenarios — the lack of a mental model becomes a liability.
The Admittance Direction
If impedance control is the natural substrate for current embodied AI, admittance control points to where it might go next.
Consider what admittance control offers: a robot that is told to produce a certain contact force, and moves until it achieves it. This is how dexterous manipulation actually works. When a human picks up an egg, they do not compute the joint angles required to achieve contact — they feel the shell, adjust grip force continuously, and stop squeezing when the feedback says enough. Force at the fingertip is the primary sense; joint position is derivative.
Most robot hands and arms today do not work this way. They are position-controlled devices executing spatial plans. They have no native sense of contact force, and their controllers have no way to target it directly. Tactile sensors exist, but they are usually treated as perception inputs to the policy rather than as the control variable.
Admittance control changes the architecture: force becomes the action, and position becomes the consequence. This is a fundamentally different framing, and it maps much better onto manipulation tasks that require compliance — grasping fragile objects, inserting parts with tight tolerances, maintaining contact during tool use.
The challenge is that admittance control does not naturally pair with teleoperation-based data collection, which is currently the dominant paradigm for embodied AI. Teleoperation gives you position targets from the human operator. Translating those into force targets requires knowing the environment contact state — which you often do not have during demonstration collection.
A Possible Path Forward
My friend’s framing at the end of the night stayed with me:
Maybe what we need is not purely admittance and not purely impedance, but a staged approach — impedance to approach and make contact, admittance to regulate once contact is established.
This decomposition maps onto the natural phases of manipulation: free-space motion (where position matters and contact forces are zero), contact establishment (where the transition needs to be smooth), and constrained manipulation (where force regulation is primary). A controller — or a learned policy — that knows which phase it is in could invoke the appropriate regime.
From a learning perspective, this suggests that action spaces for embodied AI might benefit from being richer than pure joint positions. Including target force as part of the action representation, or training policies that output impedance parameters rather than just position targets, could give the learning more room to express what the robot actually needs to do.
This is speculative. But the underlying point is less speculative: the control layer is not just a hardware detail. It shapes what the robot can sense, what it can express, and what failure looks like. Embodied AI researchers who treat it as a black box are giving up leverage.
What I Took Away
Embodied intelligence is currently built on a control substrate that most of its practitioners do not think about. That substrate — impedance-based joint control — is, for the most part, a good match for end-to-end learning. Its systematic biases cancel out across train and deploy. Its compliance provides a buffer against modeling error.
But admittance control, force as the primary variable, maps more naturally onto what dexterous manipulation actually requires. Getting there will require bridging the gap between the high-level policy and the low-level controller in a way that current systems do not.
The people building that bridge are probably going to need to understand both sides.
