Robot Wiki

Action Chunking (ACT and ALOHA)

Predicting action sequences instead of single steps: the CVAE structure, the chunk-size tradeoff, and temporal ensembling.

Last reviewed
Reading time
14 min
Citations
16

Behavior cloning fails in closed loop for a precise reason: a policy with per-step error ε on the expert's state distribution can accumulate cost that grows quadratically with episode length, because each mistake carries the robot into states the expert never visited Ross 2011. Over a T-step episode the worst-case cost scales as

O(εT2)behavior cloningO(εT)DAgger\underbrace{O(\varepsilon T^2)}_{\text{behavior cloning}} \qquad \underbrace{O(\varepsilon T)}_{\text{DAgger}}

where the second bound is what DAgger buys by repeatedly relabeling the states the policy actually visits Ross 2011. Action chunking attacks the same bound from a different side: it shrinks the effective horizon. Instead of predicting one action per inference, the policy predicts a sequence of k actions at once, so the number of sequential decisions in an episode drops by a factor of k.

Drag the chunk size slider to k=1 and then back to 100. That curve is ACT's own ablation: 1% success one action at a time, 44% at a hundred. Everything else in this module explains why those two numbers are so far apart.

10%20%30%40%50%1100200300400chunk size k1%44%

k = 100: 44% success, 4 decisions per 400-step episode

Solid points are the measured ACT ablation values (1% at k=1, 44% at k=100, averaged over the paper's two simulated tasks with scripted and human demonstrations). The dashed region past k=100 is interpolated: the paper reports a slight decline at k=200 and k=400 without exact numbers.

Task success rises from 1% at chunk size k = 1 to the measured 44% peak at k = 100, and at the current k = 100 the curve reads 44% success against 4 closed-loop decisions per 400-step episode; the dashed region past k = 100 is interpolated beyond the measured ACT ablation, which reports a slight decline at k = 200 and k = 400 without exact numbers.

Sampled success rate and decision count by chunk size
chunk size ksuccessdecisionsprovenanceplayhead
11%400measuredoff
2514%16interpolatedoff
5025%8interpolatedoff
10044%4measuredplayhead
20039%2past the measured rangeoff
30034%2past the measured rangeoff
40030%1past the measured rangeoff

ACT: chunking with a CVAE

Action Chunking with Transformers (ACT), introduced together with the ALOHA bimanual teleoperation hardware, wraps chunking in a conditional variational autoencoder Zhao 2023. During training, an encoder reads the demonstration's action sequence and produces a latent style variable. At test time the policy decodes a chunk conditioned on camera images, joint positions, and the latent clamped to zero.

100
chunk size k
2 s of motion per inference
50 Hz
control rate
~80M
policy parameters
ResNet-18 backbones plus transformer
44%
success at k=100
1% at k=1, simulated ablation

ACT reference configuration

observations
4 RGB cameras plus joint positions
action space
14-dim continuous, two 6-DoF ViperX arms plus grippers
training objective
L1 reconstruction plus KL on the style latent
test-time latent
z fixed to zero (deterministic decode)
execution
temporal ensembling over overlapping chunks

The 14 action coordinates are six arm joints and one gripper coordinate per arm. The ACT hardware section names two six-DoF ViperX arms, while Section IV-C uses the shorthand “7+7=14 DoF”; that notation must not be read as seven arm joints Zhao 2023. Mobile ALOHA explicitly describes its 14 arm-action coordinates as including two continuous gripper actions Fu 2024.

The objective in the card follows ACT's implementation description: Section IV-C specifies L1 reconstruction, but Algorithm 1 prints MSE, with a weighted KL regularizer in both accounts Zhao 2023. The paper is internally inconsistent here; the card states the Section IV-C choice, not a universal ACT objective.

The chunk-size dial

Chunk size is a real bias/variance dial, not a hyperparameter footnote. The curve above comes from the paper's two simulated MuJoCo tasks (Cube Transfer and Bimanual Insertion), averaged over four settings (each task trained on scripted and on human demonstrations, temporal ensembling disabled): ACT measures 1% success at k=1, 44% at k=100, and a decline at k=200 and k=400 as the policy becomes effectively open-loop Zhao 2023. Too small and compounding error returns; too large and the policy stops reacting to the world mid-chunk.

Note

Chunking does not reduce the per-decision error ε. It reduces the number of decisions, T divided by k, over which that error compounds. The bias you pay is commitment: the world can change inside a chunk, and the policy will not notice until the next inference.

Temporal ensembling and its limits

The pinned ACT reference implementation uses temporal ensembling: it queries the policy at every timestep and averages the retained predictions for the current action in oldest-to-newest order tonyzhaozh 2023. Its weights are wi=exp(mi)w_i = \exp(-m \cdot i), where i=0i = 0 is the earliest retained prediction and m=0.01m = 0.01. Thus the oldest retained prediction has the largest weight; increasing mm reduces the relative weight of newer predictions. The example below starts with already-selected predictions: it illustrates the weighted average, not the reference code's nonzero-buffer selection rule.

Original schematicDiagram of temporal ensembling: three overlapping action chunks each contain a prediction for the same action a_t, and oldest-to-newest unnormalized weights are 1.00, 0.61, and 0.37 for illustrative m=0.5; the reference code uses m=0.01.
Three chunks issued at t-2, t-1, and t predict the current action. Oldest-to-newest raw weights are 1.00, 0.61, and 0.37 for illustrative m=0.5; divide by their sum before averaging. This emphasizes the reference convention: oldest gets the largest weight. The pinned ACT code uses m=0.01, not 0.5.
Diagram: Robot Wiki contributors / Robot Wiki (original diagram). Licence: CC BY 4.0.
temporal_ensembling.py
# ACT reference convention: preds contains current-step predictions already
# selected and ordered oldest-to-newest. Index 0 is the oldest retained
# prediction, not "zero chunks ago". Reference m=0.01. This helper does not
# reproduce ACT's raw-buffer nonzero occupancy filter.
def temporal_ensemble(preds: list[np.ndarray], m: float = 0.01) -> np.ndarray:
    weights = np.exp(-m * np.arange(len(preds)))   # w_i = exp(-m * i)
    weights /= weights.sum()
    return np.tensordot(weights, np.stack(preds), axes=1)

For an illustrative scalar example after selection, oldest-to-newest predictions [0, 10, 20] at m=0.01m = 0.01 receive normalized weights approximately [0.33667217, 0.33332222, 0.33000561] and yield 9.93333444. This does not exercise the reference occupancy filter, which would discard a literal zero scalar in the raw buffer.

Warning

The RTC experiment used π0.5 with five denoising steps: model latency was 76 ms for the baselines and 97 ms for RTC, plus 10 to 20 ms over LAN. The tested temporal-ensembling variants triggered protective stops at an additional 100 or 200 ms of injected delay, not at those values of total latency Black 2025. The accompanying blog reports averages over six tasks, ten episodes per task; this is an experimental result, not a universal failure threshold Black 2025.

Why idle segments freeze single-step policies

Demonstrations contain pauses that are unpredictable from a Markovian single-step state. Both ACT and Diffusion Policy document robots freezing when the policy cannot represent the pause Chi 2023. Temporal context, not a bigger backbone, is what fixes it.

Real-Time Chunking (RTC) reframes the hand-off between chunks as an inpainting problem on the flow or diffusion trajectory: actions that will already have executed are frozen, the overlapping middle is partially attended to, and the remainder is generated fresh Black 2025. In the reported π0.5 experiment, RTC showed no degradation in average task throughput through +200 ms of injected delay, without retraining Black 2025. This evaluates RTC on a flow-matching policy; it does not establish adoption by later generations of the pi line.

The dial below is a deterministic toy of a cross-mode hand-off, not a reproduction of the RTC benchmark. Its percentages are a normalized toy score: the collapse curve, the fixed RTC line, and the interpolation between measured delay settings are assumptions. The paper reports average task throughput, not these percentages; the slider also extends beyond the experiment’s +200 ms endpoint Black 2025.

documented TE failure0%25%50%75%100%050100150200240injected delay (ms)temporal ensemblingreal-time chunking

Deterministic toy, not measured throughput: at 0 ms of added delay, the normalized toy scores are 100% for temporal ensembling and 100% for RTC. The shaded 100 to 200 ms failure window marks the experiment's two failed TE settings, not a universal latency threshold. The curve between settings and its continuation beyond +200 ms are illustrative assumptions.

Sampled toy throughput scores by added delay
delay (ms)ensemblingchunkingensembling statusplayhead
0100%100%nominalplayhead
6085%100%degradedoff
1000%100%failedoff
1400%100%failedoff
2000%100%failedoff
2400%100%failedoff
no valid modeleftrightnew chunk arrives081623controller tick

Across the 24-tick hand-off at 0 ms of delay the real-time chunking action stays flat on the committed mode at 0.80 while the ensembled action holds within tolerance and ends at 0.80; the shaded band between the two dashed mode lines is the invalid middle no demonstration ever commanded, and those lines are the modelled modes rather than measured actions.

Sampled executed action across the hand-off
tickensemblingchunkingensembling validity
00.800.80on a mode
40.800.80on a mode
80.800.80on a mode
120.800.80on a mode
180.800.80on a mode
230.800.80on a mode

d = 0 ms: temporal ensembling 100% nominal, real-time chunking 100% holding

Deterministic toy, not measured throughput. This qualitative model illustrates a possible cross-mode hand-off; its percentages, transition curve, and flat RTC line are assumptions. The π0.5 experiment reported average task throughput across six tasks at +0, +100, and +200 ms of added delay. The slider extends beyond those tested settings.

Prediction

In the reported π0.5 experiment, which added-delay setting already caused both tested temporal-ensembling variants to trigger protective stops?
Read the reasoning
Both panels start at +100 ms: the toy assigns ensembling 0% and RTC 100%. Drag the slider to inspect the assumed transition, not to estimate a measured failure threshold.
documented TE failure0%25%50%75%100%050100150200240injected delay (ms)temporal ensemblingreal-time chunking

Deterministic toy, not measured throughput: at 100 ms of added delay, the normalized toy scores are 0% for temporal ensembling and 100% for RTC. The shaded 100 to 200 ms failure window marks the experiment's two failed TE settings, not a universal latency threshold. The curve between settings and its continuation beyond +200 ms are illustrative assumptions.

Sampled toy throughput scores by added delay
delay (ms)ensemblingchunkingensembling statusplayhead
0100%100%nominaloff
6085%100%degradedoff
1000%100%failedplayhead
1400%100%failedoff
2000%100%failedoff
2400%100%failedoff
no valid modeleftrightnew chunk arrives081623controller tickoff-mode

Across the 24-tick hand-off at 100 ms of delay the real-time chunking action stays flat on the committed mode at 0.80 while the ensembled action leaves both valid modes and ends at 0.53; the shaded band between the two dashed mode lines is the invalid middle no demonstration ever commanded, and those lines are the modelled modes rather than measured actions.

Sampled executed action across the hand-off
tickensemblingchunkingensembling validity
00.800.80on a mode
40.800.80on a mode
80.710.80on a mode
120.530.80off-mode
180.530.80off-mode
230.530.80off-mode

d = 100 ms: temporal ensembling 0% failed, real-time chunking 100% holding

Deterministic toy, not measured throughput. This qualitative model illustrates a possible cross-mode hand-off; its percentages, transition curve, and flat RTC line are assumptions. The π0.5 experiment reported average task throughput across six tasks at +0, +100, and +200 ms of added delay. The slider extends beyond those tested settings.

  • Around a full second, the length of a 50-step chunk at 50 HzA chunk horizon is not a latency tolerance guarantee. Both tested variants triggered protective stops at the much smaller +100 ms setting.
  • Around 500 ms, once a whole chunk has gone staleThe experiment already reported protective stops at +100 ms of added delay. It did not establish a universal threshold from the fraction of the chunk that had elapsed.
  • +100 ms, added to the existing model and network latencyBoth tested variants triggered protective stops at +100 ms and +200 ms. RTC maintained average task throughput across the tested delays. The panel below illustrates one possible cross-mode failure; its 0% and 100% are toy scores, not measured task throughput.pi-real-time-chunking-blog-2025

Keep added delay separate from total latency. These π0.5 results support RTC under the tested conditions, not a universal 100 ms limit or a guaranteed flat curve for every task.

The lineage in numbers

The table compares reported prediction horizons and control settings, not universal deployment defaults. Weights describe download availability, not license openness; an unverified release is not disclosed, not evidence of a closed license. Applicable unpublished horizons and rates also read not disclosed, never n/a or zero.

Physical Intelligence 2026 Physical Intelligence’s openpi README lists base checkpoints for π0, π0-FAST, and π0.5 with download locations, as observed on 7 September 2026. The cited repository snapshot is dated 24 August 2026; the README was last edited 21 November 2025. This catalogue is not a global latest-release claim, and absence from it does not establish another model’s license.

Action horizon (predicted actions) and reported frequency (Hz). Setup-specific prediction, execution and controller rates are not interchangeable. Applicable unpublished values are not disclosed. Weights mean download availability, not license openness.
Action representationWeights
RT-1202213Everyday Robots commanded control256 discrete bins per dimnot disclosedPretrained weights not disclosed in the checked RT-1 paper; its code-release statement is not a weight release
ACT202310050CVAE decoder, continuous k x 14downloadable
Diffusion Policy20231610DDPM over action chunksdownloadable
Octo202464ALOHA finetuning: executes 12 of 64; not universalnot disclosedNo universal rate disclosed; separate setups: Franka prediction 15 Hz, coffee controller 10 Hz, ViperX control 5 Hzdiffusion action head (chunked)downloadable
pi0202450Executes 16 on UR5e/Franka; 25 on other evaluated robots20UR5e/Franka; other evaluated robots 50 Hz (paper: up to 50 Hz)flow matching, continuousdownloadable
pi0.520255050 predictions (inclusive H=49); executed count not disclosed in the v1 paper50v1 paper mobile-manipulation targets; not inference throughputpaper: flow matching + FAST supervision; openpi: flow head onlydownloadableopenpi snapshot lists pi05_base; download availability does not establish license terms
pi0.62025not disclosedPredicted and executed counts not disclosed in the November 17, 2025 model cardnot disclosedRobot-control Hz not disclosed in the model card; 63 ms chunk inference uses five denoising steps, three cameras and one H100continuous-action flow matching; FAST backbone supervision during trainingnot disclosedModel-specific weight-release and licensing terms not disclosed in the checked pi0.6 model card
pi0.7202650Five denoising steps; executes either 15 or 25; paper does not map these choices to robots20UR5e reference; other tested robots 50 Hzcontinuous-action flow matching; FAST backbone supervision during trainingnot disclosedModel-specific weight-release and licensing terms not disclosed in the checked pi0.7 paper
GR00T N1.7202640N1.7 README model horizon; executed count is rollout-dependent, not disclosed as one valuenot disclosedNo universal robot-control Hz disclosed in the checked N1.7 README; inference throughput is not control frequencyflow-matching DiT head, relative EEFdownloadableGA README lists downloadable weights; License section: code Apache 2.0, weights NVIDIA Open Model License
Helix 022026not disclosedChunk length not disclosed in the January 27, 2026 announcement; not inapplicable200S1 joint targets (200 Hz), tracked by S0 actuator commands (1 kHz)not disclosedWeight-release and licensing terms not disclosed in this announcement

Octo v2's ALOHA finetuning example predicts 64 actions and executes 12 before replanning. Its other reported setups include Franka action prediction at 15 Hz, a coffee-task controller at 10 Hz, and ViperX end-effector control at 5 Hz. These are separate examples, not one universal Octo control rate or horizon. The action head uses diffusion Octo Model Team 2024.

Black 2024 π0 v4 predicts 50 actions. In its reported execution setup, UR5e and Franka run at 20 Hz and execute 16 actions before replanning; the other evaluated robots run at 50 Hz and execute 25. The table's 20 Hz entry names the UR5e/Franka reference, while the paper describes operation at up to 50 Hz. Its continuous action outputs are trained with conditional flow matching.

Brohan 2022 RT-1 predicts one robot action per timestep and commands the Everyday Robots mobile manipulator at 3 Hz. Each action dimension is mapped to one of 256 uniformly distributed bins within that variable’s bounds. Six input frames are observation history, not a six-action horizon. The paper announces open code; pretrained-weight availability is not disclosed in that statement.

Black 2025 The π0.5 v1 paper predicts 50 action entries (inclusive indexing, H=49) and sends targets at 50 Hz in its two-mobile-platform setup. That does not establish how many actions execute before replanning. The paper combines FAST-token prediction with flow matching; the cited openpi README supports only the flow-matching head for π0.5 training and inference.

Physical Intelligence 2025 The November 17, 2025 π0.6 model card describes a continuous-action flow-matching expert; FAST tokens supervise the VLM backbone during training. The card does not specify predicted or executed chunk length, robot-control rate, or model-specific weight-release and licensing terms. Its 63 ms action-chunk latency uses five denoising steps and three camera inputs on one H100; this is inference latency, not a control frequency. The card’s openpi release statement concerns the π0.5 comparator, not π0.6.

Ai 2026 In the π0.7 paper’s experiments, the continuous-action flow-matching expert predicts 50-step chunks with five denoising steps and executes either 15 or 25 steps. UR5e robots run at 20 Hz; the other tested robots run at 50 Hz. The paper does not assign either execution choice to a particular robot. FAST tokens supervise the backbone during training, not the runtime action output. The model distills experience from RL-trained π*0.6; evaluation without task-specific post-training does not mean training without RL-derived data. Model-specific weight-release and licensing terms are not disclosed in this paper.

NVIDIA 2026 The NVIDIA Isaac GR00T README describes the N1.7 GA release: a predicted horizon of 40, a flow-matching DiT head, relative-end-effector support, and downloadable weights. Relative EEF is not its only embodiment interface; it also describes SONIC latent-action output. No single robot-control frequency is disclosed there; inference throughput is a different quantity. Its overview says Apache 2.0, but its License section distinguishes Apache 2.0 code from weights under the NVIDIA Open Model License. Download availability does not resolve that licensing discrepancy.

Figure AI 2026 Figure’s January 27, 2026 Helix 02 announcement reports S1 full-body joint targets at 200 Hz, tracked by S0 actuator commands at 1 kHz. These are separate layers, not interchangeable control rates. Chunk length and weight-release/licensing terms are not disclosed in this announcement; neither absence establishes inapplicability or closed licensing.

Where the idea travels next

Mobile ALOHA extends the same recipe to a wheeled whole-body platform and shows that co-training on static ALOHA data lifts mobile manipulation success substantially Fu 2024.

See also

  • Behavior Cloning Foundations

    Covariate shift and compounding error: why naive imitation breaks in closed loop, with DAgger as the standard fix.

  • Diffusion Policy

    Visuomotor control as conditional denoising over action sequences, with receding-horizon execution.

  • Real-Time Execution

    Temporal ensembling and real-time chunking: the latency budgets that decide whether the control loop closes.

Linked from

  • Behavior Cloning Foundations

    Covariate shift and compounding error: why naive imitation breaks in closed loop, with DAgger as the standard fix.

  • Diffusion Policy

    Visuomotor control as conditional denoising over action sequences, with receding-horizon execution.

  • Vision-Language-Action Models

    RT-1, RT-2, RT-X, Octo, and OpenVLA: web-scale pretraining meets robot control, and the cost of discrete action tokens.

  • Real-Time Execution

    Temporal ensembling and real-time chunking: the latency budgets that decide whether the control loop closes.

  • Action Spaces for Robot Learning

    Joint, Cartesian, torque, impedance, chunked and tokenized actions: what each representation gives the learner and pushes onto the controller.

  • Teleoperation Rigs

    ALOHA, GELLO, UMI, and VR teleop: cost, data quality, throughput, and the embodiment gap.

  • Kinematics

    Forward and inverse kinematics, DH parameters, and the Jacobian; the theory behind the 3D playground.

References

  1. Stéphane Ross, Geoffrey J. Gordon, J. Andrew Bagnell, AISTATS 2011.

    https://arxiv.org/abs/1011.0686

  2. Tony Z. Zhao, Vikash Kumar, Sergey Levine, Chelsea Finn, RSS 2023.

    https://arxiv.org/abs/2304.13705

  3. tonyzhaozh, 2023.

    https://github.com/tonyzhaozh/act/blob/76cf30b4fed1d72dafbc3e1c270c0839d57e8bcf/imitate_episodes.py

  4. Zipeng Fu, Tony Z. Zhao, Chelsea Finn, 2024.

    https://arxiv.org/abs/2401.02117

  5. Cheng Chi, Zhenjia Xu, Siyuan Feng, Eric Cousineau, Yilun Du, Benjamin Burchfiel, Russ Tedrake, Shuran Song, 2023.

    https://arxiv.org/abs/2303.04137

  6. Kevin Black, Manuel Y. Galliker, Sergey Levine, 2025.

    https://arxiv.org/abs/2506.07339

  7. Kevin Black, Manuel Y. Galliker, Sergey Levine, 2025.

    https://www.pi.website/research/real_time_chunking

  8. Octo Model Team, Dibya Ghosh, Homer Walke, Karl Pertsch, Kevin Black, Oier Mees, Sudeep Dasari, Joey Hejna, and 12 more, 2024.

    https://arxiv.org/html/2405.12213v2

  9. Kevin Black, Noah Brown, Danny Driess, Adnan Esmail, Michael Equi, Chelsea Finn, Niccolo Fusai, Lachy Groom, and 16 more, RSS 2025, 2024.

    https://arxiv.org/abs/2410.24164

  10. Physical Intelligence, 2026.

    https://github.com/Physical-Intelligence/openpi/blob/215abfb217dbac7d5f1273282331b9b1866c0479/README.md

  11. Anthony Brohan, Noah Brown, Justice Carbajal, Yevgen Chebotar, Joseph Dabis, Chelsea Finn, Keerthana Gopalakrishnan, Karol Hausman, and 43 more, 2022.

    https://arxiv.org/html/2212.06817v2

  12. Physical Intelligence, Kevin Black, Noah Brown, James Darpinian, Karan Dhabalia, Danny Driess, Adnan Esmail, Michael Equi, and 28 more, 2025.

    https://arxiv.org/html/2504.16054v1

  13. NVIDIA, 2026.

    https://github.com/NVIDIA/Isaac-GR00T

  14. Figure AI, 2026.

    https://www.figure.ai/news/helix-02

  15. Physical Intelligence, 2025.

    https://website.pi-asset.com/pi06star/PI06_model_card.pdf

  16. Bo Ai, Ali Amin, Raichelle Aniceto, Ashwin Balakrishna, Greg Balke, Kevin Black, George Bokinsky, Shihao Cao, and 79 more, 2026.

    https://www.pi.website/download/pi07.pdf

Spot a factual error or missing qualification? Report a content correction.