GroundProbe ACT Checkpoints
Two Action Chunking with Transformers (ACT) policies trained on one cell of
the GroundProbe demonstrations:
quest_l2_cubes_pilot, instruction T1 ("Pick the left red block and place it
in the bin") at the clean complexity, simulated Franka Panda in NVIDIA
Isaac Lab-Arena.
ACT has no language input, so these are not grounding baselines. They exist to show that the demonstrations and the closed-loop evaluation path support learning the skill, and they are useful as a reference point when bringing up a new policy on the benchmark.
Code, scenes and the evaluation harness: https://github.com/AndersonYu7/Benchmark
Checkpoints
| folder | action encoding | dataset column | qpos input | best epoch |
|---|---|---|---|---|
delta_pose/ |
delta pose, 7-D | action |
TCP pose, 7-D | 510 |
joint/ |
absolute joint targets, 8-D | action.joint |
7 joint positions + total finger opening | 230 |
Each folder holds:
policy_best.ckpt: the weights with the lowest validation lossconfig.json: architecture settings, the training/validation episode split and their layout seedsdataset_stats.pkl: the normalisation statistics the policy was trained with
config.json names the delta-pose encoding "action_space": "tcp"; that is
the action column of the dataset.
Results
Closed-loop rollouts under the benchmark success criterion (target inside the bin for 30 consecutive control steps), at most 1000 control steps, executing the first 25 actions of every 50-action chunk before re-querying the policy.
| policy | evaluation layouts | success | Wilson 95% |
|---|---|---|---|
| delta pose | the 20 training-demonstration layouts | 17/20 (85%) | [64%, 95%] |
| joint | the 20 training-demonstration layouts | 16/20 (80%) | [58%, 92%] |
| joint | the 5 held-out validation layouts | 2/5 (40%) | [12%, 77%] |
| joint | 20 layouts outside the collection seed range | 5/20 (25%) | [11%, 47%] |
With 50 demonstrations of one cell, the drop on unseen layouts is expected.
Training
ResNet-18 backbone, 4 encoder / 7 decoder layers, hidden size 512,
feed-forward 3200, 8 heads, dropout 0.1, chunk size 50, both cameras
(third_camera, wrist_camera) at 240×240, AdamW with learning rate 1e-5
(backbone 1e-5) and weight decay 1e-4, batch size 8, KL weight 10.
45 training and 5 validation episodes; validation every 10 epochs; stopped
after 300 epochs without improvement.
Using them
The evaluation harness loads these through script/policy_adapters.py
(ACTAdapter), which reads config.json and dataset_stats.pkl from the
checkpoint's folder:
hf download Boyun7/GroundProbe-ACT --local-dir act_ckpt
python -m script.eval_policy --policy ACT --scene cubes \
--ckpt act_ckpt/joint/policy_best.ckpt \
--eval-episodes 20 --exec-horizon 25 --headless --out eval_out/act_joint \
--environment l2_spatial_tasks.examples.manipulation.l2_spatial_env:L2SpatialEnv \
--enable_cameras l2_spatial_env --embodiment franka --enable_cameras True
config.json records the dataset path as dataset/quest_l2_cubes_pilot,
relative to the repository root, and the harness reads the control rate and
the joint policy's starting configuration from it. Download the dataset into
dataset/ at the repository root before evaluating.
License
Apache 2.0, matching the code and the dataset.