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
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:
full_ft_best_model.pt: primary checkpoint with 22D observations, including 6-axis force/torque inputno_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 |
| 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
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
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
- Diffusion Policy: Visuomotor Policy Learning via Action Diffusion
- Factory: Fast Contact for Robotic Assembly
Citation
@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
- Domain-randomized successor: EXOKERN/skill-forge-peginsert-v0.1.1
- Evaluation CLI: github.com/Exokern/exokern_eval
- Organization page: huggingface.co/EXOKERN

