
Method
3D scene representation
Given an RGB-D observation, a frozen ViT encoder extracts a sequence of N patch tokens . Each patch center is unprojected through the depth map and camera intrinsics K to yield a 3D point
in camera coordinates. These coordinates serve as positional inputs to the denoising transformer via 3D RoPE rather than being concatenated to the token features, preserving the geometry in the attention structure rather than the embedding space.
3D Rotary Position Embeddings
Standard 1D RoPE encodes position m into query/key features by rotating pairs of dimensions by angle , where
is a base-dependent frequency. We extend this to three independent spatial axes. For a token at position
, the rotation matrix applied to a d-dimensional feature vector is:
where each axis block is itself block diagonal over frequency pairs
:
The rotated query and key for token i are and analogously for
. The attention score between tokens i and j then depends only on their relative 3D displacement:
which encodes translation equivariance in 3D space directly into attention.
Flow matching objective
The policy models the conditional distribution over action trajectories via a learned vector field. Given a scene encoding
(3D scene tokens, proprioception, and language), we define a time-conditional flow from a noise distribution
to the data distribution
via the ODE:
The vector field is parameterized by the denoising transformer and trained with the conditional flow matching loss:
where is the linear interpolant,
, and
.
Learned calibration correction
Problem setup.
Let denote the unknown camera-to-robot rotation for a given data source. Points reconstructed from the camera are expressed as
, so feeding
into 3D RoPE implicitly applies an erroneous coordinate frame. We seek to learn a correction that absorbs
from data alone.
Camera token.
For a frame with N patch tokens , we form a camera token by mean pooling:
Parameterization via the matrix exponential.
We require the correction to be a valid rotation matrix so that the modified RoPE
remains an element of
. We enforce this by construction: an MLP
maps
to the entries of a skew-symmetric matrix
, and
is obtained via the matrix exponential. Skew-symmetry
guarantees:
so by construction, without any projection step or penalty term.
Lifting to full dimension.
The RoPE frequency vector for a token at position is a stacked 6-vector of cosines and sines across the three axes. To act on the full d-dimensional feature space,
is tiled as:
Since is block diagonal with identical blocks,
if and only if
. Orthogonality of the tile is therefore necessary and sufficient for orthogonality of the full matrix.
Modified RoPE.
The corrected position encoding for token i replaces the raw cosine-sine vector with:
The relative-position property of RoPE is preserved under this transformation: for any two tokens ,
so the correction acts as a global re-orientation of the coordinate frame rather than a distortion of pairwise geometry. The entire model including is trained end-to-end with
, with no auxiliary supervision on
.
Extension to GR00T N1.5
GR00T N1.5 follows a DiT-based architecture with alternating cross-attention (vision-to-action) and self-attention (action) blocks. We replace the 2D sinusoidal positional encodings on visual tokens with 3D RoPE frequencies derived from unprojected depth, and optionally prepend a head as described above. The vision encoder and language backbone remain frozen; only the DiT blocks and the
MLP
are updated during finetuning.