IMPALA pixel encoder β€” MimicGen threading_d0

The visual encoder from a DICE-RL pixel-Q critic that reaches 90% success on MimicGen threading_d0 (needle-through-tripod insertion), trained from 224x224 RGB with DrQ random-shift augmentation.

What this is

Two IMPALA conv towers, one per camera, whose outputs are concatenated with 9 proprio dims:

images uint8 [B, 2, 224, 224, 3]  +  proprio [B, 9]
        -> per-camera ImpalaTower (channels 16/32/32, residual blocks, 3x stride-2 pools)
        -> 32 x 28 x 28 feature map, flattened -> Linear -> LayerNorm -> 128
        -> concat([tower0, tower1, proprio]) = 265

6.6M parameters. Proprio is eef_pos(3) + eef_quat(4) + gripper_qpos(2), StateScaler-scaled.

Loading

import torch
from online_rl_mimicgen.pixel import PixelEncoder      # PIXEL_IMG=224 must be set

enc = PixelEncoder(out_dim=128)
enc.load_state_dict(torch.load("impala_encoder.pt", map_location="cpu"))
enc.eval()

feats = enc(images_uint8, proprio_scaled)              # -> [B, 265]
visual_only = feats[:, :256]                           # drop the proprio block

PIXEL_IMG is read from the environment at import time and fixes the head's input width, so it must be 224 before online_rl_mimicgen.pixel is imported. At the library default of 84 the Linear shapes will not match these weights.

What it encodes β€” measured, in millimetres

Held-out state read-off (200 episodes, 20% held out by episode, 2-layer MLP head), against the same protocol applied to frozen mean-pooled DINOv2 features:

target this encoder frozen DINOv2 (768)
eef_pos 33.3 mm 15.8 mm
obj_pos (needle) 30.2 mm 17.3 mm
goal_pos (tripod) 46.4 mm 73.7 mm
offset (needle βˆ’ tripod) 47.9 mm 97.1 mm
β€–offsetβ€– (scalar distance) 31.7 mm 79.8 mm

The pattern is the useful part: this encoder is worse at absolute positions and better at every relative quantity. Task training reallocates precision toward the needle-hole relationship that TD learning needs, at the cost of world-coordinate localisation it does not β€” with a third of the feature dimensions.

Note it resolves the offset to ~48 mm while solving a task whose tolerance is far tighter, so millimetre-accurate geometry is evidently not required for 90% success.

Provenance and caveats

  • Run thrpix2_q_s42, 300k env steps, DICE-RL model-free pixel Q (--pixel-obs, no world model).
  • Trajectory: 57% at 0k (BC prior) β†’ 86% at 50k β†’ 89% at 100k β†’ 90% at 300k.
  • Trained WITH DrQ augmentation (random_shift, pad=4 β†’ Β±1.79% of a 224 frame). This matters: otherwise-identical runs without augmentation reach only 63.4% (n=5) β€” augmentation is worth ~+28 points here, so these weights should not be read as "what an IMPALA encoder learns" independent of that regulariser.
  • A sibling seed reached 96%, but its checkpoint predates encoder saving and is unrecoverable; this is the best encoder that actually exists on disk.
  • Single task, single simulator, two fixed camera poses. No claim of transfer.
Downloads last month
12
Video Preview
loading