ACT — ARMCHEMIST OPEN CAP (100k)

ACT policy trained to open a reagent container cap with the omx_dual robot. Task: 시약통 뚜껑 열기 (open the reagent container cap). This repository contains the final 100,000-step checkpoint, including normalization buffers in model.safetensors.

Training data

  • Dataset: gamzadole/ARMCHEMIST_OPEN_CAP
  • Dataset revision: 7edbfa387ea9097ff50a6cae2347edab6e1ac1ec (LeRobot v2.1).
  • Original dataset: 49 episodes and 22,056 frames.
  • Excluded original Hugging Face episode indices after user visual review: 3, 35, 42, 48.
  • Training subset: 45 episodes, 20,256 frames, 30 FPS.
  • The retained episodes were copied and renumbered 0–44. See dataset_selection.json for the original-to-subset correspondence.
  • Source data was preserved. All retained action/state values and videos were verified against the source.

Inputs and outputs

Provide all four image streams as [batch, 3, 480, 640] tensors in [0, 1], using the same camera views and preprocessing as the recordings:

  • observation.images.cam_head
  • observation.images.cam_head_depth
  • observation.images.cam_wrist_left
  • observation.images.cam_wrist_right

The depth camera input was stored as a three-channel video in the dataset; it is used as that recorded visual representation, not as a raw metric-depth tensor.

observation.state and action each have twelve components in this order: l_joint1, l_joint2, l_joint3, l_joint4, l_joint5, l_gripper_joint_1, r_joint1, r_joint2, r_joint3, r_joint4, r_joint5, r_gripper_joint_1. Preserve the recording's joint conventions, units and calibration. The policy contains mean/std normalization. Use the trained control rate of 30 Hz.

Training configuration

Setting Value
Policy / backbone ACT / ResNet-18, ImageNet initialization
Steps 100,000 total
Batch size 8
Precision FP32; AMP disabled
Optimizer AdamW
Learning rate / backbone learning rate 1e-5 / 1e-5
Weight decay 1e-4
Gradient clipping 10
Action chunk / executed action steps 100 / 100 (about 3.33 seconds at 30 Hz)
Seed 1000
Data workers 4
Checkpoint interval 2,000 steps
GPU NVIDIA GeForce RTX 4070 Ti SUPER 16 GB
LeRobot commit 989f3d05ba47f872d75c587e76838e9cc574857a
PyTorch / torchvision / TorchCodec 2.7.1 / 0.22.1 / 0.5.0

The model was trained in FP32 throughout. The training target was extended from 80,000 to 100,000 steps by resuming the model and optimizer state from the first 2,000-step checkpoint. Training completed at 2026-10-17 10:16:14 KST.

Loading

Use Python 3.11 and the pinned dependencies in requirements-training.txt. This artifact uses the saved-model format of the pinned LeRobot commit; compatibility with newer releases has not been tested.

pip install -r requirements-training.txt
from lerobot.policies.act.modeling_act import ACTPolicy

policy = ACTPolicy.from_pretrained("Dominho/act-armchemist-open-cap-100k")
policy.eval()
policy.reset()  # reset at the beginning of each episode
# action = policy.select_action(observation_batch)

The saved device is CUDA. The upload includes inference weights and training configuration, but not the optimizer/RNG state needed to resume training. Paths in train_config.json were made relative for portability; rebuild the filtered subset using dataset_selection.json before any further training. The source dataset alone includes the excluded episodes.

Evaluation status

The final logged training loss was 0.037, averaged over the final logging interval. The final model and optimizer tensors passed finite-value checks. All 45 retained episodes were used for training. No held-out evaluation or real-robot success-rate evaluation has been performed. Training loss is not a measured task success rate.

The exported policy was checked by strict checkpoint loading and a finite 12-dimensional action prediction from one recorded observation. This is an inference smoke check, not a robot task-success evaluation.

Downloads last month
12
Safetensors
Model size
51.7M params
Tensor type
F32
·
Video Preview
loading

Dataset used to train Dominho/act-armchemist-open-cap-100k