Robotics
PyTorch
LeRobot
diffusion-policy
force-torque
contact-rich
manipulation
insertion
isaac-lab
forge
franka
panda
simulation
imitation-learning
physical-ai
Eval Results (legacy)
Instructions to use EXOKERN/skill-forge-peginsert-v0 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- LeRobot
How to use EXOKERN/skill-forge-peginsert-v0 with LeRobot:
- Notebooks
- Google Colab
- Kaggle
| pretty_name: "EXOKERN Skill v0 - Peg Insertion with Force/Torque" | |
| license: cc-by-nc-4.0 | |
| pipeline_tag: robotics | |
| library_name: pytorch | |
| tags: | |
| - robotics | |
| - diffusion-policy | |
| - force-torque | |
| - contact-rich | |
| - manipulation | |
| - insertion | |
| - isaac-lab | |
| - forge | |
| - franka | |
| - panda | |
| - simulation | |
| - imitation-learning | |
| - lerobot | |
| - physical-ai | |
| datasets: | |
| - EXOKERN/contactbench-forge-peginsert-v0 | |
| metrics: | |
| - success_rate | |
| - avg_contact_force_n | |
| - peak_contact_force_n | |
| model-index: | |
| - name: EXOKERN Skill v0 - Peg Insertion (full_ft) | |
| results: | |
| - task: | |
| type: robotics | |
| name: Peg insertion | |
| dataset: | |
| name: EXOKERN ContactBench v0 | |
| type: EXOKERN/contactbench-forge-peginsert-v0 | |
| metrics: | |
| - type: success_rate | |
| value: 100.0 | |
| name: Success Rate (%) | |
| - type: avg_contact_force_n | |
| value: 3.2 | |
| name: Average Contact Force (N) | |
| - type: peak_contact_force_n | |
| value: 10.5 | |
| name: Peak Contact Force (N) | |
| # EXOKERN Skill v0 - Peg Insertion with Force/Torque | |
| `skill-forge-peginsert-v0` is the clean baseline skill release in the EXOKERN catalog. The repository contains a paired policy comparison on the fixed-condition [EXOKERN ContactBench v0 dataset](https://huggingface.co/datasets/EXOKERN/contactbench-forge-peginsert-v0): | |
| - `full_ft_best_model.pt`: primary checkpoint with 22D observations, including 6-axis force/torque input | |
| - `no_ft_best_model.pt`: ablation baseline with the same architecture but without force/torque input | |
| The main value of this release is not just success rate. It is a controlled reference point for measuring how force/torque sensing changes contact quality on a simple assembly task. | |
| ## Quick Facts | |
| | Item | Value | | |
| | --- | --- | | |
| | Task | Peg insertion in simulation | | |
| | Dataset | [EXOKERN/contactbench-forge-peginsert-v0](https://huggingface.co/datasets/EXOKERN/contactbench-forge-peginsert-v0) | | |
| | Simulator | NVIDIA Isaac Lab (Isaac Sim 4.5) | | |
| | Robot | Franka Emika Panda | | |
| | Architecture | TemporalUNet1D diffusion policy | | |
| | Parameters | 71.3M | | |
| | Observation horizon | 10 frames | | |
| | Prediction / execution horizon | 16 / 8 actions | | |
| | Primary checkpoint | `full_ft_best_model.pt` | | |
| | Included ablation | `no_ft_best_model.pt` | | |
| ## Primary Benchmark | |
| The Hub metadata for this repo tracks the primary `full_ft` checkpoint. The full repo includes the paired `no_ft` ablation for comparison. | |
| | Checkpoint | Success Rate | Avg Contact Force (N) | Peak Force (N) | | |
| | --- | ---: | ---: | ---: | | |
| | `full_ft` | 100.0 | 3.2 +/- 0.5 | 10.5 +/- 0.4 | | |
| | `no_ft` | 100.0 | 5.2 +/- 0.1 | 12.1 +/- 0.3 | | |
|  | |
| *Figure: published seed-wise benchmark summary for the fixed-condition baseline release.* | |
| Per-seed average contact force: | |
| | Seed | `full_ft` | `no_ft` | Reduction with F/T | | |
| | --- | ---: | ---: | ---: | | |
| | 42 | 3.7 N | 5.3 N | 30.4% | | |
| | 123 | 3.4 N | 5.0 N | 32.3% | | |
| | 7 | 2.5 N | 5.2 N | 52.0% | | |
| Takeaway: on this controlled baseline, force/torque input preserved success while substantially reducing contact force. | |
| ## Architecture | |
| This release uses a 1D Temporal U-Net diffusion policy with FiLM-style conditioning from the observation history and diffusion timestep. | |
|  | |
| | Component | Value | | |
| | --- | --- | | |
| | Action dimension | 7 | | |
| | Observation dimensions | 22 (`full_ft`) / 16 (`no_ft`) | | |
| | Diffusion training steps | 100 | | |
| | DDIM inference steps | 16 | | |
| | Base channels | 256 | | |
| | Channel multipliers | (1, 2, 4) | | |
| | Normalization | Min-max to `[-1, 1]` | | |
| ## Repository Contents | |
| | File | Description | | |
| | --- | --- | | |
| | `full_ft_best_model.pt` | Best checkpoint with force/torque input | | |
| | `no_ft_best_model.pt` | Best checkpoint without force/torque input | | |
| | `inference.py` | Self-contained inference helper and model definition | | |
| | `config.yaml` | Training, dataset, and environment configuration | | |
| | `training_curve_full_ft_seed42.png` | Training curve for `full_ft`, seed 42 | | |
| | `training_curve_full_ft_seed123.png` | Training curve for `full_ft`, seed 123 | | |
| | `training_curve_full_ft_seed7.png` | Training curve for `full_ft`, seed 7 | | |
| | `training_curve_no_ft_seed42.png` | Training curve for `no_ft`, seed 42 | | |
| | `training_curve_no_ft_seed123.png` | Training curve for `no_ft`, seed 123 | | |
| | `training_curve_no_ft_seed7.png` | Training curve for `no_ft`, seed 7 | | |
| ## Usage | |
| ### Reproduce evaluation with `exokern-eval` | |
| ```bash | |
| pip install exokern-eval | |
| wget https://huggingface.co/EXOKERN/skill-forge-peginsert-v0/resolve/main/full_ft_best_model.pt | |
| exokern-eval \ | |
| --policy full_ft_best_model.pt \ | |
| --env Isaac-Forge-PegInsert-Direct-v0 \ | |
| --episodes 100 | |
| ``` | |
| ### Load the repo helper locally | |
| ```python | |
| import os | |
| import sys | |
| from huggingface_hub import snapshot_download | |
| repo_dir = snapshot_download( | |
| repo_id="EXOKERN/skill-forge-peginsert-v0", | |
| allow_patterns=["*.pt", "inference.py"], | |
| ) | |
| sys.path.insert(0, repo_dir) | |
| from inference import DiffusionPolicyInference | |
| policy = DiffusionPolicyInference( | |
| os.path.join(repo_dir, "full_ft_best_model.pt"), | |
| device="cpu", | |
| ) | |
| policy.add_observation([0.0] * 22) | |
| actions = policy.get_actions() | |
| print(len(actions)) | |
| ``` | |
| ## Training And Evaluation Setup | |
| | Item | Value | | |
| | --- | --- | | |
| | Train / val split | 85% / 15% by episode | | |
| | Epochs | 300 | | |
| | Batch size | 256 | | |
| | Optimizer | AdamW, `lr=1e-4`, `weight_decay=1e-4` | | |
| | LR schedule | Cosine annealing to `1e-6` | | |
| | EMA decay | 0.995 | | |
| | Seeds | 42, 123, 7 | | |
| | Physics rate | 120 Hz | | |
| | Control rate | 15 Hz | | |
| | Domain randomization | Disabled in this release | | |
| ## Related Work | |
| - FORGE: [Force-Guided Exploration for Robust Contact-Rich Manipulation under Uncertainty](https://arxiv.org/abs/2408.04587) | |
| - Diffusion Policy: [Visuomotor Policy Learning via Action Diffusion](https://arxiv.org/abs/2303.04137) | |
| - Factory: [Fast Contact for Robotic Assembly](https://arxiv.org/abs/2205.03532) | |
| ## Citation | |
| ```bibtex | |
| @misc{exokern_skill_peginsert_v0_2026, | |
| title = {EXOKERN Skill v0: Peg Insertion with Force/Torque}, | |
| author = {{EXOKERN}}, | |
| year = {2026}, | |
| howpublished = {\url{https://huggingface.co/EXOKERN/skill-forge-peginsert-v0}}, | |
| note = {Paired full_ft and no_ft diffusion-policy checkpoints} | |
| } | |
| ``` | |
| ## Security Note | |
| The checkpoints in this repo are PyTorch pickles. Load them only in a trusted or isolated environment after reviewing the repository contents. | |
| ## Limitations | |
| - Simulation only. This release does not claim real-robot readiness. | |
| - The task is a relatively simple peg insertion setting with fixed conditions. | |
| - Results should not be generalized to harder contact tasks without additional evidence. | |
| - The repo exposes paired checkpoints for research comparison; the intended production-style reference in this repo is `full_ft_best_model.pt`. | |
| ## Related Resources | |
| - Dataset: [EXOKERN/contactbench-forge-peginsert-v0](https://huggingface.co/datasets/EXOKERN/contactbench-forge-peginsert-v0) | |
| - Domain-randomized successor: [EXOKERN/skill-forge-peginsert-v0.1.1](https://huggingface.co/EXOKERN/skill-forge-peginsert-v0.1.1) | |
| - Evaluation CLI: [github.com/Exokern/exokern_eval](https://github.com/Exokern/exokern_eval) | |
| - Organization page: [huggingface.co/EXOKERN](https://huggingface.co/EXOKERN) | |