NeuralActuator pretrained checkpoints

Pretrained checkpoints for the RSS 2026 paper NeuralActuator: Neural Actuation Modeling for Robot Dynamics and External Force Perception. The model is a Flax Transformer encoder (4 layers, hidden dim 192, 4 attention heads, ~1.4M parameters) over an 8-step history of commanded positions, proprioception and actuator telemetry, with three output heads: joint torque, 3-axis end-effector external force with a contact gate, and per-motor condition logits. The torque head is trained without torque labels by backpropagating a position loss through a differentiable simulator (MuJoCo MJX); the force and condition heads use direct supervision from the force sensor and the condition flags.

Two platforms are covered: the ROBOTIS OpenManipulator-X (Dynamixel XM430-W350, 5 motors), the SO-101 (Feetech STS3215, LeRobot ecosystem, 6 joints) and the 7-DoF Franka Panda. Architecture and feature normalization are identical across platforms; only the joint count and the input feature layout differ.

Checkpoints

Eleven checkpoints, one per benchmark configuration. Verify downloads against these md5 sums:

File Benchmark md5
omx_no_load_with_gripper.pkl Table 1, with-gripper tasks 8233a0ba1b9629b2b7dd5b2a81a2e536
omx_no_load_no_gripper.pkl Table 1, no-gripper tasks 548929e3b54680a467b27aef48983d70
omx_force_sensor.pkl Table 2, force sensor 486b4a7681d379825643d3f2eab3d659
omx_weight_all_ema.pkl Table 3, all nine weight tasks (EMA weights, reported above) c463eaabf653884158f51201097ea00c
omx_weight_all.pkl Table 3, all nine weight tasks (raw weights of the same run) 60ecebb84c3e8d1b94d651e96ff355fc
omx_pick_place.pkl Table 3, pick-and-place subset 8d9834930126459c906c3cf756e39859
omx_motor_condition.pkl Table 4, motor condition e15721cc63fe56bbfaf89d2eb1b0314d
so101_weight.pkl SO-101 weight benchmark, paper protocol (six 300-500 g tasks) 95e9ed8b076f4011bfd3d6dc32876363
so101_weight_extended.pkl SO-101 weight benchmark, extended ten-task data 6ab6f6ea031d04a5c50b76eabd1c2020
so101_weight_residual.pkl SO-101 weight benchmark, residual parameterization 37027625f46837fc89fc66a2acb47574
franka_lift_hold.pkl Franka Panda lift-and-hold benchmark 94d1e67fe6fd1969f660746ffd213f20

Table numbers refer to the results tables in the paper and the GitHub README, which also carries the evaluation numbers of each released checkpoint on the NAD test split. The Table 3 checkpoint ships as both the raw and the EMA weights of the same training run; the results table reports the EMA variant.

Each .pkl is a plain pickle of a dict with keys params (Flax parameter tree), ema_params (EMA copy of the same tree), and feature_mean / feature_std (normalization statistics), so evaluation needs no extra files.

How to load

import pickle
from huggingface_hub import hf_hub_download

path = hf_hub_download("frankzydou/NeuralActuator", "omx_weight_all_ema.pkl")
ckpt = pickle.load(open(path, "rb"))   # params, ema_params, feature_mean, feature_std

To run the checkpoints, use the inference and evaluation scripts from the GitHub release, which reconstruct the model around the parameter tree:

# single-trajectory rollout with predicted force
python infer_actuator.py --robot omx --checkpoint omx_weight_all_ema.pkl \
    --config configs/lift_hold.yaml \
    --csv data/weight/pick_place_object_500g/test/001.csv \
    --out outputs/pick_place_500g_pred.npz

# telemetry-only virtual force sensor (no simulator in the loop)
python infer_actuator.py --robot omx --checkpoint omx_weight_all_ema.pkl \
    --config configs/lift_hold.yaml \
    --csv data/weight/pick_place_object_500g/test/001.csv \
    --force_only --out outputs/pick_place_500g_force.npz

# full benchmark evaluation
bash scripts/eval_force_sensor.sh omx_force_sensor.pkl 0

The config only supplies the architecture and simulation settings, which all released checkpoints share, so any config for the same robot works. In the telemetry-only mode a forward pass takes about 2 ms per step on a plain CPU after JIT warmup, well inside the ~60 Hz servo telemetry rate.

License

MIT, same as the code release.

Citation

@inproceedings{dou2026neuralactuator,
  title     = {{NeuralActuator}: Neural Actuation Modeling for Robot Dynamics and External Force Perception},
  author    = {Dou, Zhiyang and Onyemelukwe, John U. and Zhang, Hangxing and Zhang, Heng and Guo, Minghao and Tian, Yunsheng and Lipiec, Michal Piotr and Jacob, Joshua and Liu, Chao and Chen, Peter Yichen and Ivanov, Yuri and Matusik, Wojciech},
  booktitle = {Proceedings of Robotics: Science and Systems (RSS)},
  year      = {2026}
}
Downloads last month

-

Downloads are not tracked for this model. How to track
Video Preview
loading