DL0146 VLA Continuous Action Representation

How does a transformer decoder represent multi-modal continuous robot actions (e.g., 7-DoF arm pose, gripper state, base velocity) alongside language tokens, as in Google’s RT-2 and the OpenVLA models?

Answer

The decoder never sees a float. Heterogeneous degrees of freedom are first concatenated into one fixed-width vector (end-effector deltas in metres and radians, a gripper command, base velocities, and a discrete mode flag that says which sub-system is being driven this step), then each dimension is independently normalized by its own 1st and 99th percentile statistics so that metres, radians, and a binary gripper all live on [-1, 1]. In the RT-2 and OpenVLA line each normalized dimension is uniformly discretized into 256 bins and the bin index is mapped onto reserved token ids, typically the 256 least-frequently-used entries of the existing SentencePiece or Llama vocabulary, so an action literally becomes a short string of tokens appended to the same causal sequence that holds the image patches and the instruction. Nothing about the architecture changes: the same causal self-attention, the same softmax, and the same cross-entropy loss that predict the next sub-word now predict the next joint delta, which is exactly what lets a VLA inherit internet-scale pretraining. The cost is a quantization floor plus one sequential decoder step per degree of freedom, which is why newer systems keep the shared prefix but replace the discrete head with a continuous action expert that emits a whole chunk of future actions through diffusion or flow matching in a single pass.

(1) One Flat Vector, Fixed Slots: arm, gripper, and base share a single D-dimensional action vector with fixed slot semantics, and unused slots are zero-padded so one model can serve several embodiments.
(2) A Mode Dimension, Not Separate Heads: RT-1 carries an explicit mode variable that switches between controlling the arm, controlling the base, and terminating the episode, so mutually exclusive sub-spaces are disambiguated inside the same vector.
(3) Per-Dimension Quantile Normalization: statistics are computed per dimension and per dataset, using percentiles rather than min and max, because a handful of teleoperation jerks would otherwise consume most of the dynamic range.
(4) 256 Bins Onto Reserved Vocabulary Ids: the action alphabet is carved out of the language vocabulary, so no new embedding table, output head, or loss function is introduced.
(5) Autoregressive Factorization Across DoFs: the chain rule over dimensions lets the yaw bin depend on the already-emitted x and y bins, which is what keeps the joint action coherent rather than per-axis independent.
(6) Action Chunking And Continuous Heads: predicting H future steps at once fights compounding error and raises the effective control rate, and a flow-matching expert removes the bin grid entirely at the price of extra weights and solver steps.

Architecture diagram showing camera frames, instruction text, and proprioception each tokenized into a shared prefix sequence feeding a decoder-only transformer, which branches into a discrete head that emits 256-bin indices as reserved vocabulary tokens and a continuous action expert that emits an H by D chunk by flow matching, both producing the same 11-dimensional action vector of six arm deltas, one gripper command, three base velocities, and one mode flag

Figure 1: The prefix is modality-agnostic; only the head differs. The discrete head reuses the language softmax and spends one sequential decoder step per degree of freedom, while the continuous action expert attends to the same prefix but emits an entire H \times D chunk of real numbers. Both write into the identical fixed-slot action vector, including the mode flag that selects arm, base, or episode termination.

Normalization is where most of the real accuracy is won or lost, and it is the step engineers most often get wrong. Raw teleoperation logs are heavy-tailed: a few reset motions or dropped-controller frames produce end-effector deltas an order of magnitude larger than anything the policy needs at test time. If the bin edges are set by the observed minimum and maximum, those rare samples stretch the grid so far that the entire working range of the robot collapses into a few dozen of the 256 available levels, and the policy inherits a positional resolution floor of several millimetres that no amount of extra data can fix. Clipping to the 1st and 99th percentile before binning, as OpenVLA does, spends the full alphabet on the range the robot actually operates in and pushes the residual error below the mechanical repeatability of most arms. The same argument applies to the gripper, which is near-binary in the data, so it is usually thresholded into open or closed rather than treated as a smooth continuous axis.

Two histograms of the same end-effector delta-z distribution. The left panel bins over the raw min-max range, where rare large outliers stretch the grid and only a small fraction of the 256 bins are ever occupied. The right panel clips to the 1st and 99th percentile before binning, and nearly all 256 bins are occupied with a much smaller bin width in millimetres.

Figure 2: The same action dimension, two bin grids. Min-max binning lets rare teleoperation outliers dictate the grid, so most of the 256 levels are never used and the effective step size is coarse. Quantile binning throws away 2% of the samples and buys back an order of magnitude in resolution per bin, which is why percentile statistics are standard in production VLA data pipelines.

Mathematical Formulation:
a_t = (a^{\mathrm{arm}}_t, a^{\mathrm{grip}}_t, a^{\mathrm{base}}_t, m_t)
\tilde{a}_i = \mathrm{clip}(a_i, q^{i}_{1}, q^{i}_{99})
u_i = 2 (\tilde{a}_i - q^{i}_{1}) / (q^{i}_{99} - q^{i}_{1}) - 1
b_i = \lfloor 255 (u_i + 1) / 2 \rfloor
\mathrm{id}_i = V - 1 - b_i
p(a_t \mid c) = \prod_{i=1}^{D} p(b_i \mid c, b_{1:i-1})

Where:

  • a_t is the action at control step t, built from an arm delta pose (three translations and three rotations), a gripper command, a base velocity triple, and a discrete mode flag m_t.
  • a_i is the raw value of dimension i and \tilde{a}_i its clipped version; q^{i}_{1} and q^{i}_{99} are the per-dimension percentiles estimated on the training corpus.
  • u_i \in [-1, 1] is the normalized value and b_i \in \{0, \ldots, 255\} the bin index, so the grid holds 256 levels per dimension.
  • V is the language vocabulary size, and \mathrm{id}_i overwrites the 256 least-used token ids at the tail of that vocabulary.
  • c is the prefix (image patch tokens, instruction sub-words, optional proprioception) and i \in \{1, \ldots, D\} indexes the action dimensions in a fixed canonical order.
  • The product is the autoregressive factorization: each bin is conditioned on all previously emitted bins of the same action, so the joint distribution is not a product of independent marginals.

Resolution And Token Budget:
\Delta_i = (q^{i}_{99} - q^{i}_{1}) / 256
\Delta = 0.1\ \mathrm{m} / 256 \approx 0.39\ \mathrm{mm}
N = H \times D = 8 \times 11 = 88

Those two lines set the entire engineering trade-off. A translation axis clipped to \pm 0.05 m resolves to about 0.39 mm per bin, which is fine for pick and place and marginal for connector insertion, but an eight-step chunk of an 11-dimensional action costs 88 sequential decoder passes, which caps a 7B VLA at roughly 3 to 10 Hz on a single accelerator. The alternative keeps the shared prefix and attaches a small action expert whose tokens are continuous rather than discrete: starting from noise, it integrates a learned velocity field for a handful of solver steps and emits the whole chunk at once, which is how flow-matching policies reach 50 Hz dexterous control. Crucially, both the categorical head and the flow head are distributional, and that matters more than resolution: when two different behaviours are equally valid, a plain L2 or Gaussian regression head averages them into an action that belongs to neither mode.

A_t = (a_t, a_{t+1}, \ldots, a_{t+H-1})
A^{\tau + \delta} = A^{\tau} + \delta\, v_{\theta}(A^{\tau}, \tau, c)

Left panel shows a top-down workspace with an obstacle and two valid detour trajectories, one above and one below, plus a straight-line mean trajectory that drives into the obstacle. Right panel shows a bimodal action density with a 256-way softmax step approximation covering both peaks and a red dashed vertical line marking the L2 optimum located in the empty valley between the modes.

Figure 3: Why the head must be distributional. Two demonstrators route around the same obstacle in opposite directions, so the conditional action distribution is bimodal; a regression head minimizing L2 lands on the mean, which is a collision. A 256-way categorical over bins, or a diffusion or flow head over the chunk, keeps both peaks and samples one of them.

PropertyDiscrete bins as vocabulary tokensDiffusion / flow action expertDirect continuous regression
Output form256-way categorical per DoF over reserved token idsReal-valued chunk of shape H by D, denoised from noiseOne real vector, the predicted mean action
Training objectiveCross-entropy, identical to language pretrainingFlow-matching or denoising regression on noised chunksL2 or L1 on the action vector
Cost per chunkH times D sequential decoder steps (88 at H=8, D=11)One prefix pass plus about 10 solver steps of a small expertOne forward pass
Multimodal actionsYes, per-DoF peaks are tied together by the chain ruleYes, jointly over the whole chunkNo, collapses to the mean
ResolutionBin width, about 0.39 mm on a 0.1 m rangeContinuous, limited only by data noiseContinuous
Dominant failure modeQuantization floor plus slow autoregressive decodingExtra weights and solver steps, harder to co-train with textMode averaging produces an invalid middle action

Login to view more content


Log in to track your progress

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *