Diffusion Policy for Robot Manipulation: Imitation Learning
Show a human a jar of peanut butter and a spoon, and they will scoop it a dozen slightly different ways, all correct. Ask a robot trained by naive behavior cloning to imitate those demonstrations, and it will average them into a smear that scoops nothing. That averaging failure is the single most important problem in visuomotor imitation learning, and a diffusion policy is the technique that finally sidesteps it cleanly. Instead of regressing a single action from an observation, a diffusion policy treats the whole short-horizon action sequence as a sample to be drawn from a learned distribution, generated by iteratively denoising Gaussian noise the same way an image generator paints a photo out of static.
The reframing is subtle but consequential: action generation becomes conditional denoising over action trajectories, and the multimodal structure that behavior cloning destroys is preserved intact. This is why the original Diffusion Policy paper reported large average gains over prior state-of-the-art across a dozen manipulation tasks.
What this covers: the imitation-learning setup, why plain behavior cloning collapses, how DDPM/DDIM denoising builds an action chunk, the visuomotor network, training and inference mechanics, receding-horizon control, where it sits in a manipulation stack, and honest comparisons against ACT, implicit behavior cloning, and VLA foundation models.
Context and Background
Imitation learning for manipulation starts with teleoperation. A human pilots the robot — through a SpaceMouse, a puppet-arm leader device, a VR controller, or a handheld gripper like UMI — while the system records synchronized streams: RGB images from wrist and scene cameras, the robot’s joint or end-effector state, and the human’s commanded actions. A few hundred demonstrations of a task become a dataset of observation-action pairs. The learning problem is to fit a policy that maps observations to actions such that the robot reproduces the behavior on its own.
For a decade the default was behavior cloning: treat this as supervised regression, minimize the mean-squared error between the network’s predicted action and the demonstrator’s action. It is simple, stable to train, and works surprisingly often on smooth, single-mode tasks. But it has two well-documented failure axes — multimodality and compounding error — that limit how far it scales into contact-rich, precise, long-horizon work.
The field responded with several ideas before diffusion. Implicit behavior cloning (implicit BC) replaced the regression head with an energy-based model, scoring action candidates instead of predicting one, which handles multimodality but is finicky to train and sample. Action Chunking with Transformers (ACT), introduced with the ALOHA bimanual system, predicted short action chunks with a transformer and a small conditional VAE, then blended overlapping chunks with temporal ensembling. Both improved on vanilla cloning.
Diffusion Policy, introduced by Cheng Chi and colleagues at Columbia, Toyota Research Institute, and MIT and presented at Robotics: Science and Systems 2023, took the generative-modeling route further. It borrowed denoising diffusion probabilistic models — the machinery behind image generators — and pointed them at action sequences. The result generalized across four benchmark suites and, in the authors’ evaluation, beat the prior best by a wide margin on average. It has since become a default baseline and a building block inside larger vision-language-action systems. This piece explains the pattern from first principles and where its edges are.
Reference Architecture: Action Generation as Conditional Denoising
A diffusion policy generates behavior by learning a conditional denoising process over action sequences. At inference it starts from a chunk of pure Gaussian noise shaped like a short trajectory of future actions, then runs a trained network several times to progressively remove that noise, each pass conditioned on the current visual observation, until the noise resolves into a clean, executable action chunk. Because sampling draws from a distribution rather than collapsing to a mean, it naturally represents the many valid ways to do a task.

Figure 1: The visuomotor diffusion policy data path — observations are encoded and used to condition a noise-prediction network that denoises a noisy action sequence into an executable chunk.
Figure 1 traces the flow. RGB frames pass through a vision encoder, typically a ResNet-18 or ResNet-34 backbone, producing a compact feature vector per camera. The robot’s proprioceptive state — joint angles or end-effector pose — is concatenated as low-dimensional conditioning. These become the conditioning signal. Separately, a noise sequence the exact shape of the planned action chunk is drawn from a standard Gaussian. The noise-prediction network takes the noisy action chunk plus the observation conditioning plus a scalar denoising-step embedding, and predicts the noise to subtract. Repeating this subtraction over several steps yields the action chunk, which is handed to the robot’s low-level controller.
Actions are the thing being denoised, not pixels
The most important mental shift is what gets diffused. In an image generator, noise is added to and removed from pixels. In a diffusion policy, noise is added to and removed from a sequence of future robot actions — for example the next sixteen end-effector poses. The observation is never noised; it only conditions the process. This is why the method is called action diffusion. The policy answers a generative question — “what is a plausible next action trajectory given what I see?” — rather than a regression question — “what is the next action?” That difference is the whole game, because plausible-trajectory sampling keeps every mode of the demonstration data alive.
Conditioning is where the vision lives
The policy is visuomotor because vision enters through conditioning. Two mechanisms are common. In FiLM-style conditioning, the observation features modulate the feature maps of a 1D temporal convolutional denoising network by scaling and shifting them — this is the CNN-based variant, which the authors found robust and easy to tune. In cross-attention conditioning, a transformer denoiser attends to observation tokens at every layer — this is the transformer-based variant, which shines on tasks with high action-dimensionality or sharp multimodality but is more sensitive to hyperparameters. Either way, the network never memorizes a fixed observation-to-action map; it learns a score field over action space that the observation reshapes.
Action chunking is structural, not cosmetic
A diffusion policy predicts a chunk of actions — a horizon of several to sixteen steps — in one generative pass, not one action at a time. Chunking is not just efficient; it is a hedge against compounding error. Predicting a coherent short trajectory keeps the robot committed to a plan for a few steps, which smooths jitter and reduces the number of independent decisions where small errors can accumulate and drift the robot off the data manifold. Chunk length is a real knob: too short and you lose temporal coherence, too long and the plan grows stale before you re-observe.
Why Naive Behavior Cloning Fails
To appreciate what diffusion buys you, look hard at what it replaces. Behavior cloning as regression fails on two structural grounds, and both are worth making precise because they explain when you actually need a diffusion policy and when a simpler method is fine.
Multimodality: the mean of two right answers is wrong
Suppose demonstrators, when reaching around an obstacle, sometimes pass left and sometimes right. Both are correct; the data contains two modes. A regression network trained with mean-squared error learns the conditional mean of the targets for a given observation. The mean of “go left” and “go right” is “go straight into the obstacle.” The loss function literally rewards the network for averaging incompatible demonstrations into an action that appears in none of them.
This is not a corner case. Manipulation is full of it: which of two symmetric grasp points to use, whether to nudge an object clockwise or counterclockwise, which sub-task to start first when order does not matter. Anywhere the demonstrations branch, a unimodal regressor collapses the branches. A diffusion policy escapes this because it models the full distribution — sampling returns a mode, cleanly left or cleanly right, never the poisoned average. Implicit BC and the VAE inside ACT also target multimodality, but diffusion’s iterative refinement expresses sharp, high-dimensional multimodal distributions more stably than a single-shot latent or an energy model that must be optimized at sample time.
Compounding error and covariate shift
The second failure is temporal. A policy trained on expert states only ever saw expert states. At run time, the first small prediction error nudges the robot into a state slightly off the demonstration distribution. From that unfamiliar state the next prediction is worse, which pushes it further off, and the errors compound. This distribution mismatch between training states and the states the policy actually visits is covariate shift, and it is why cloned policies that look great for two seconds can diverge catastrophically over a long horizon.
Diffusion policy does not solve covariate shift outright — no pure imitation method does without interactive data collection like DAgger — but it blunts it in two ways. Action chunking reduces the count of independent decisions per unit time, so there are fewer opportunities to step off the manifold. And the receding-horizon execution scheme, covered below, re-grounds the policy in fresh observations frequently enough to catch small drifts before they snowball. The multimodal fidelity also matters here: a policy that commits crisply to one valid mode stays on a demonstrated trajectory instead of wandering through the averaged no-man’s-land between modes.
Inside the Denoising Loop: Training and Inference
The denoising machinery comes straight from DDPM (Ho et al., 2020), adapted so the diffused variable is an action sequence. It helps to separate the two phases sharply, because they use the same network for opposite purposes.

Figure 2: Training corrupts demonstrated action chunks with noise and teaches the network to predict that noise; inference runs the same network in reverse to denoise a random chunk into an executable trajectory.
Figure 2 shows both loops sharing weights. Training is the top path, inference the bottom.
Training: teach the network to predict the noise
Take a demonstrated action chunk from the dataset. Sample a random denoising step k from the schedule and a fresh Gaussian noise tensor. Corrupt the action chunk by mixing in that noise according to the step-k noise level defined by the schedule — early steps add a little, late steps almost bury the signal. Feed the network three things: the noised action chunk, the observation conditioning for that timestep, and an embedding of k. Ask it to predict the noise that was added. Compute mean-squared error between the predicted and actual noise, and backpropagate. That is the entire training objective — a simple denoising regression, which is far more stable than adversarial or energy-based alternatives.
The noise schedule is a design choice with real consequences. The number of diffusion steps K (the original work used one hundred for training with a squared-cosine schedule) sets how finely the corruption is discretized. Because training samples k uniformly, the network learns to denoise at every noise level, from nearly-clean to nearly-pure-noise, which is what makes the reverse process work at inference.
Inference: denoise from noise, conditioned on what you see
At run time there is no demonstrated action to corrupt. You start from a chunk of pure Gaussian noise and run the reverse process. Feed the noisy chunk, the current live observation conditioning, and the current step index into the same trained network; it predicts the noise; you subtract a scaled version of it to get a slightly cleaner chunk; repeat. After K passes you have a clean action chunk drawn from the conditional distribution the network learned. This is the stochastic-Langevin-style refinement the paper describes — each step nudges the sample up the learned score field toward high-probability actions.
DDIM and the latency problem
Running one hundred network evaluations per control decision is far too slow for a robot closing a loop at ten hertz or faster. The standard fix is DDIM (Song et al., 2021), a deterministic sampler that decouples the number of inference denoising steps from the number of training steps. You can train with a hundred steps and infer with ten, or even fewer, trading a little sample quality for a large speedup. This is the lever that makes diffusion policy real-time viable at all, and it is the first thing you tune when latency hurts. Later work pushes further with consistency models and one-step distillation, but plain DDIM at roughly ten inference steps is the pragmatic baseline.
(The step counts and schedule values above are the settings reported in the original work and common re-implementations; treat any specific number as a starting point to tune per task and per hardware, not a universal constant.)
Receding-Horizon Control: Closing the Loop
Generating a sixteen-step action chunk raises an obvious question: do you execute all sixteen steps blindly before looking again? No. Diffusion policy uses receding-horizon control, the same principle behind model-predictive control. You predict a chunk of length Ta but only execute the first Tp steps, then re-observe and re-plan.

Figure 3: Receding-horizon execution — the policy predicts an action chunk, the robot executes only the leading steps, and a fresh observation triggers a new prediction before the chunk is exhausted.
Figure 3 sequences it. The policy sees the latest images and state, denoises a chunk, and writes it to an action buffer. The controller executes the leading portion — perhaps eight of sixteen steps — then a new observation arrives and the policy replans. The unexecuted tail of the old chunk is discarded. This overlap-and-replan rhythm is where the method reconciles two competing needs.
The prediction horizon versus the action horizon
There are two horizons and they do different jobs. The prediction horizon Ta is how far ahead the policy plans in one generative pass; a longer Ta gives temporal consistency and lets the policy commit to a coherent maneuver like a smooth reach-and-insert. The action horizon Tp is how many of those steps you actually execute before replanning; a shorter Tp gives reactivity, re-grounding the policy in fresh sensory data more often. The ratio between them is the central tuning trade-off of deployment. Plan long, execute short: you get both a coherent plan and frequent correction. Plan long, execute long: smoother but sluggish to react. Plan short: you lose the anti-compounding-error benefit of chunking.
Why this beats single-step reaction
A naive single-step policy re-plans every control tick, maximizing reactivity but maximizing decision count — every tick is another chance to drift. Receding horizon with chunking hits a sweet spot: enough commitment to stay coherent and on-manifold, enough replanning to catch disturbances. If someone bumps the object mid-task, the next observation reflects the new state and the following chunk adapts. The buffer also hides inference latency: while the robot executes the current chunk, the next one can be computed, so denoising time overlaps with motion instead of stalling it.
Where Diffusion Policy Fits in the Manipulation Stack
A diffusion policy is a policy — the middle of a larger system, not the whole thing. Understanding its neighbors clarifies what it does and does not own.
Upstream sits perception. Cameras, and increasingly depth and tactile sensors, feed the observation. Some pipelines hand the raw images straight to the policy’s encoder (end-to-end visuomotor); others pre-process into object poses or point clouds. Fusing several modalities cleanly is its own discipline — see this companion piece on multi-sensor fusion architecture for autonomous robots for how camera, depth, and inertial streams get aligned before a policy ever sees them.
Alongside perception, explicit grasp synthesis may still play a role. A diffusion policy trained end-to-end learns grasping implicitly from demonstrations, but many production stacks keep a dedicated grasp module for reliability and to inject geometric priors; the design considerations there are covered in 6-DoF grasp detection for robot manipulation. Downstream, the policy’s action chunk feeds a low-level controller — impedance, admittance, or joint position — that turns target poses into motor commands and closes the fast servo loop.
Above the policy sits task orchestration. A diffusion policy is superb at a single contact-rich skill but has no notion of long-horizon task structure, ordering, or recovery logic. That coordination belongs to a higher layer, often a state machine or a behavior tree for robot task planning, which sequences skills, checks preconditions, and decides which policy to invoke when. The clean division of labor — behavior tree for what and when, diffusion policy for how — is a robust architecture in practice.
The comparison that actually matters
Teams rarely ask “diffusion or nothing.” They ask “diffusion, ACT, plain cloning, or a VLA foundation model.” The honest answer depends on data, latency, and whether you need semantics.

Figure 4: A first-pass decision path — language and reasoning needs point to VLAs, multimodal demos favor diffusion policy, tight latency favors ACT, and simple single-mode tasks are fine with plain cloning.
Figure 4 sketches the first branch points. The table below adds detail. Treat the qualitative ratings as engineering judgment, not benchmark scores.
| Property | Diffusion Policy | ACT | Plain Behavior Cloning | VLA Foundation Model |
|---|---|---|---|---|
| Core mechanism | Conditional denoising over action chunks | Transformer + CVAE chunk prediction | Direct regression | Pretrained vision-language backbone + action head |
| Multimodality | Excellent, sharp modes | Good, VAE-limited | Fails, averages modes | Good, often via diffusion or flow head |
| Inference latency | Higher, many denoise steps | Low, single forward pass | Lowest | Highest, billions of parameters |
| Data appetite | Hundreds of demos per task | Hundreds of demos per task | Low but brittle | Massive pretraining then few-shot |
| Language and reasoning | None | None | None | Yes, follows instructions |
| Best fit | Contact-rich, multimodal single skills | Precise bimanual, latency-sensitive skills | Smooth single-mode tasks | Generalist, instruction-following, novel objects |
ACT and diffusion policy are close cousins — both predict chunks, both fight compounding error — and the choice often comes down to latency versus multimodal sharpness. ACT’s single forward pass is much cheaper than a denoising loop; diffusion’s iterative refinement represents nastier multimodal distributions more faithfully. Plain cloning remains a reasonable baseline for genuinely unimodal, smooth tasks where its simplicity and speed win.
VLA foundation models such as Physical Intelligence’s pi-0.5 are a different animal. They wrap a large pretrained vision-language model around an action-generation head — frequently a diffusion or flow-matching head, so diffusion-style action generation lives inside them — and add language grounding and broad pretraining. That buys instruction-following and better generalization to novel objects and scenes, at the cost of billions of parameters, heavy compute, and inference latency that models like pi-0 and OpenVLA make significant even on modern accelerators. A task-specific diffusion policy is smaller, faster to train on your own demos, and often more precise on the one skill you care about; a VLA is the choice when you need breadth, language, or zero-to-few-shot coverage of tasks you did not demonstrate.
Trade-offs, Gotchas, and What Goes Wrong
Diffusion policy is strong, not magic. The failure modes are specific and worth internalizing before you commit a program to it.
Out-of-distribution states break it. Like all pure imitation, it only trusts states near its demonstrations. Push it far off the data manifold — a lighting change, an unseen object pose, a disturbance larger than anything demonstrated — and behavior degrades unpredictably, sometimes with confident-looking but wrong actions. Diffusion’s multimodal fidelity does not fix out-of-distribution generalization; it improves in-distribution behavior. Coverage in the demonstration set is still your safety margin.
Inference latency is a real constraint. The denoising loop is many forward passes per decision. DDIM and distillation help, and receding-horizon buffering hides some of it, but on compute-limited robots you will feel the tension between denoising steps (quality) and control rate (reactivity). If your task needs high-frequency reaction to fast dynamics, benchmark the closed-loop rate early; a single-forward-pass method like ACT may simply fit the timing budget better.
It is data-hungry and demonstration-quality-sensitive. Hundreds of clean, consistent demonstrations per task is a typical ask. Inconsistent or low-quality teleoperation poisons the learned distribution — garbage modes in, garbage modes out. And because it captures multimodality faithfully, it will also faithfully reproduce bad habits and hesitations if they are in the data. Curate demonstrations; do not just collect them.
No reasoning, no semantics. The policy has no world model, no goal representation you can query, no ability to follow a language instruction or explain itself. It maps observations to motions. Anything requiring symbolic reasoning, task decomposition, or on-the-fly re-goaling must live in a layer above it. Confusing a skill policy for a task planner is a common architectural mistake.
Sim-to-real is not free. Training in simulation to escape the data-collection cost runs straight into the reality gap: visual appearance, contact dynamics, and friction differ, and a policy that mastered the sim can flail on hardware. Domain randomization, real-data co-training, and careful sensor matching mitigate it, but sim-to-real transfer for contact-rich diffusion policies remains an active research problem, not a solved deployment recipe.
Silent multimodal collapse under bad conditioning. If the observation conditioning is weak or ambiguous, the policy can dither between modes across replanning cycles — scoop left, then right, then left — producing incoherent motion. Strong, disambiguating observations and a sensible action-horizon setting keep it committed.
Practical Recommendations
Start by asking whether your task is actually multimodal and contact-rich. If demonstrations are smooth and single-mode, a simpler cloning baseline may match a diffusion policy at a fraction of the compute — measure before you reach for the heavy tool. If the task branches, involves rich contact, or has several valid strategies, diffusion policy earns its keep.
Invest in demonstration quality over quantity beyond the floor. Consistent teleoperation, good camera placement (a wrist camera plus a scene camera is a strong default), and synchronized logging matter more than raw demo count. Budget for a few hundred clean demonstrations per skill.
Tune the horizons deliberately. Plan long and execute short — a common starting point is a prediction horizon around sixteen and an action horizon around eight — then adjust toward reactivity or smoothness based on closed-loop behavior. Use DDIM with roughly ten inference steps as your latency baseline and only add steps if sample quality visibly suffers.
Keep the policy in its lane. Put task ordering, recovery, and skill selection in a behavior tree or state machine above it, and keep perception fusion and low-level control as separate, testable modules. This separation makes failures diagnosable instead of mysterious.
A short deployment checklist:
- Confirm the task is multimodal or contact-rich enough to justify diffusion over ACT or cloning.
- Collect several hundred clean, consistent demonstrations with fixed camera geometry.
- Choose CNN-based conditioning first; move to transformer conditioning only if multimodality or action-dimensionality demands it.
- Set prediction horizon longer than action horizon; verify closed-loop control rate on the real hardware.
- Use DDIM inference (about ten steps) and buffer chunks to hide latency.
- Wrap the policy in a higher-level planner for anything beyond a single skill.
- Stress-test out-of-distribution states and log failures back into the demonstration set.
Frequently Asked Questions
What is a diffusion policy in robotics?
A diffusion policy is an imitation-learning method that generates a robot’s actions by iterative denoising. Instead of predicting one action from an observation, it starts from random Gaussian noise shaped like a short future action sequence and runs a trained network several times to remove that noise, conditioned on the current camera and state observation, until a clean, executable action chunk emerges. Because it samples from a learned distribution rather than averaging, it preserves the multiple valid ways to perform a task, which plain regression destroys.
How is diffusion policy different from behavior cloning?
Plain behavior cloning regresses a single action and minimizes mean-squared error, which forces it to output the average of the demonstrated actions for a given observation. When demonstrations are multimodal — several correct strategies — that average is often invalid. A diffusion policy instead models the full conditional distribution of action sequences and samples one coherent mode, avoiding the averaging failure. It also predicts action chunks and replans in a receding horizon, which reduces the compounding-error drift that hurts step-by-step cloning.
Is diffusion policy fast enough for real-time control?
It can be, with care. The denoising loop is several network evaluations per decision, which is slower than a single-pass policy. Using a DDIM sampler decouples inference steps from training steps, so you can train with a hundred steps and infer with about ten. Receding-horizon buffering also overlaps denoising with robot motion. On compute-limited hardware there is a genuine tension between denoising quality and control rate, so benchmark the closed-loop frequency before committing.
Diffusion policy versus ACT — which should I use?
They are close relatives; both predict action chunks and fight compounding error. ACT uses a transformer with a small VAE and a single forward pass, so it is much cheaper at inference and often preferred when latency is tight or the task is precise bimanual work. Diffusion policy uses iterative denoising, which represents sharp, high-dimensional multimodal action distributions more faithfully. Choose ACT for latency-critical tasks and diffusion policy when the demonstrations are strongly multimodal.
How do diffusion policies relate to VLA models like pi-0?
Vision-language-action foundation models wrap a large pretrained vision-language backbone around an action-generation head, and that head is frequently a diffusion or flow-matching module — so diffusion-style action generation often lives inside a VLA. The difference is scope: a standalone diffusion policy is a compact, task-specific skill trained on your own demonstrations, while a VLA adds language grounding and broad pretraining for instruction-following and generalization to novel tasks, at the cost of billions of parameters and much higher inference latency.
How much data does a diffusion policy need?
A typical single skill needs on the order of a few hundred clean teleoperated demonstrations, though the exact figure depends on task difficulty, visual variation, and how multimodal the behavior is. Quality matters as much as quantity: because the method faithfully captures the distribution of demonstrated actions, inconsistent or sloppy demonstrations produce inconsistent or sloppy policies. Curating a consistent demonstration set with stable camera geometry usually beats collecting a larger but noisier one.
Further Reading
- 6-DoF grasp detection for robot manipulation — how explicit grasp synthesis complements or substitutes for end-to-end visuomotor policies.
- Physical Intelligence pi-0.5 VLA robot foundation model — a foundation model that embeds diffusion-style action generation inside a vision-language backbone.
- Behavior trees for robot task planning — the higher-level orchestration layer that sequences skills a diffusion policy executes.
- Multi-sensor fusion architecture for autonomous robots — how the observations feeding a visuomotor policy are aligned and fused.
- External: Diffusion Policy: Visuomotor Policy Learning via Action Diffusion (Chi et al., RSS 2023) — the primary paper.
- External: Denoising Diffusion Probabilistic Models (Ho et al., 2020) — the DDPM foundation the method adapts.
By Riju — about
