EXOKERN Skill v0.1.1 — Robust Contact-Rich Peg Insertion

Pre-trained Diffusion Policy for the contact-rich Peg Insertion task, trained on the domain-randomized ContactBench v0.1.1 dataset.

This skill demonstrates Level 1 (Sim-Validated + Out-of-Distribution) of the EXOKERN Quality Pyramid. It achieves a 100% success rate under severe domain randomization, establishing a robust baseline for force-aware manipulation.

Part of the EXOKERN Skill Platform — unlocking the "Kontakt-Foundation Model" for industrial assembly.

Training Curves

Architecture

This repository contains two variants of a 71.3M parameter Vision-Language-Action (VLA) style Visuomotor Diffusion Policy, adapted for low-dimensional proprietary state spaces:

  1. full_ft (22-dim input): Includes the 6-axis end-effector wrench.
  2. no_ft (16-dim input): Ablated baseline without force/torque data.

Both networks use a 1D Temporal CNN backbone + DDIM (16 diffusion steps).

Architecture

Evaluation Results: 600-Episode Multi-Seed Deep Dive

We evaluated both the full_ft and no_ft policies across 3 distinct training seeds (42, 123, 7). Each policy was evaluated for 100 episodes under severe domain randomization (friction, mass, gains).

Key Finding: Domain Randomization is the Great Equalizer

Metric v0 (Fixed Env) v0.1.1 (Severe DR)
Success Rate 100% 100%
full_ft Avg Force 3.7 N 3.67 N
no_ft Avg Force 5.3 N 3.37 N
F/T Force Reduction 30% -9% (Inconclusive)

Analysis: In our v0 baseline (fixed environment), providing force/torque data reduced contact forces by 30%. However, under v0.1.1's severe Domain Randomization, the no_ft policy was forced to learn significantly more robust, compliant behaviors from visual/proprioceptive cues alone.

As a result, DR reduced the no_ft contact force by 36% (5.3N -> 3.37N), effectively neutralizing the F/T advantage on this specific, relatively simple task. This confirms our roadmap strategy: F/T sensing becomes critical primarily on harder tasks (e.g., tighter tolerances, screw driving, snap-fits), which is the focus of our upcoming v0.2 release.

Detailed Multi-Seed Results

Seed Condition Success Rate Avg Force (N) Peak Force (N) Avg Time (s)
42 full_ft 100.0% 3.2 10.4 25.6
42 no_ft 100.0% 3.4 10.4 25.7
123 full_ft 100.0% 4.1 10.6 25.7
123 no_ft 100.0% 3.3 10.3 25.8
7 full_ft 100.0% 3.7 10.9 25.5
7 no_ft 100.0% 3.4 10.3 25.7
Mean full_ft 100.0% 3.67 ± 0.45 10.63 25.6
Mean no_ft 100.0% 3.37 ± 0.06 10.33 25.7

Note: The no_ft policy exhibited significantly lower variance across seeds (±0.06N vs ±0.45N), indicating higher training stability under these specific DR conditions.

Usage with exokern-eval

Evaluate this exact checkpoint in your own Isaac Lab environment using our CLI tool:

pip install exokern-eval

# Download the model weights
wget https://huggingface.co/EXOKERN/skill-forge-peginsert-v0.1.1/resolve/main/full_ft_best_model.pt

# Run the evaluation
exokern-eval \
  --policy full_ft_best_model.pt \
  --env Isaac-Forge-PegInsert-Direct-v0 \
  --episodes 100

Inference Code Example

import torch
import numpy as np

# Use EXOKERN's safe_load utility to prevent unpickling vulnerabilities
# https://github.com/Exokern/exokern/blob/main/Skill_Training/safe_load.py
from safe_load import safe_load_checkpoint

# Load the model directly from HF Hub
from huggingface_hub import hf_hub_download
model_path = hf_hub_download(repo_id="EXOKERN/skill-forge-peginsert-v0.1.1", filename="full_ft_best_model.pt")

ckpt = safe_load_checkpoint(model_path, device="cuda")
model = ckpt["model"]

# Create dummy observation (22-dim)
# See Dataset card for tensor layout
obs_dict = {
    "observation.state": torch.randn(1, 22).cuda()
}

# Run inference
with torch.no_grad():
    action = model(obs_dict)
    
print(f"Predicted action (7-DOF): {action.shape}")

Security Notice (torch.load Vulnerability)

In PyTorch, torch.load with weights_only=False can execute arbitrary code during unpickling (CVE-2025-32434).

Always use weights_only=True when loading untrusted checkpoints. This repository provides a safe_load_checkpoint script configured to safely allowlist necessary numpy types (like np.dtypes.Float64DType) required to read the EXOKERN checkpoint statistics. Download it from our GitHub repository.

Intended Use

Primary Use Case: Sim-to-real research, benchmarking imitation learning algorithms, and studying the effect of Force/Torque modalities under domain randomization.

Out of Scope: Direct deployment on physical hardware without comprehensive safety bridging, limit definition, and real-world calibration. This model was trained exclusively in simulation.

License

  • Code & Architecture: Apache 2.0
  • Model Weights: CC-BY-NC 4.0 (Free for research & non-commercial use)

For commercial licensing of the "Kontakt-Foundation Model" or custom Skill porting, please contact EXOKERN.


EXOKERN — Bridging the Haptic Gap in Robotic Manipulation exokern.com | github.com/Exokern

Downloads last month
3
Video Preview
loading