A diffusion policy represents a robot's visuomotor policy as a conditional denoising diffusion process. Starting from Gaussian noise, a network conditioned on recent observations removes noise over a series of steps until a sequence of actions remains. The technique was introduced by Chi et al. in "Diffusion Policy: Visuomotor Policy Learning via Action Diffusion" (2023). The paper's central argument is that diffusion handles multimodal action distributions, such as two equally valid ways around an obstacle, where regressing to the mean would produce an action no demonstrator took.
The paper defines three horizons: observation horizon T_o, action prediction horizon T_p, and action execution horizon T_a. The robot executes T_a of the T_p predicted steps before re-planning (see action horizon). LeRobot's Diffusion Policy maps these to n_obs_steps, horizon and n_action_steps, with v0.6.1 defaults of 2, 64 and 32, and uses a DDPM noise scheduler with 100 training timesteps; inference uses the same number of steps unless num_inference_steps is set. Multitask DiT extends the design with a diffusion transformer and language conditioning.
The term is overloaded. As a technique, "diffusion policy" means any policy whose action head is a diffusion model. As a model, it means Chi et al.'s architecture, trained from scratch per task. VLAs with diffusion or flow-matching action heads are diffusion policies in the first sense, not the second.
Every denoising step is a full forward pass of the action network, so the step count dominates inference latency on small compute such as a Jetson Orin Nano.