Instructions to use Dominho/act-armchemist-open-cap-100k with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- LeRobot
How to use Dominho/act-armchemist-open-cap-100k with LeRobot:
# No code snippets available yet for this library. # To use this model, check the repository files and the library's documentation. # Want to help? PRs adding snippets are welcome at: # https://github.com/huggingface/huggingface.js
- Notebooks
- Google Colab
- Kaggle
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.jsonfor 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_headobservation.images.cam_head_depthobservation.images.cam_wrist_leftobservation.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