--- tags: - onnx - robotics - reinforcement-learning - microduck --- # MicroDuck walking policy (official pretrained copy) This repository contains `BEST_alpha_walking.onnx`, an unchanged copy of the pretrained walking policy distributed by **Pollen Robotics**. It was downloaded and smoke-tested locally; it was **not trained or fine-tuned by this uploader**. ## Source - Original project: [pollen-robotics/microduck-simulator](https://huggingface.co/spaces/pollen-robotics/microduck-simulator) - Pinned revision: `183f99a40bd7308da3e848de961ed32bb02624a5` - [Original model file](https://huggingface.co/spaces/pollen-robotics/microduck-simulator/blob/183f99a40bd7308da3e848de961ed32bb02624a5/app/public/policies/BEST_alpha_walking.onnx) - SHA-256: `e36332d383997d51401897734cd3e79cf5038406feddb18b4d57ecfb141daa6c` No new license is granted by this copy. Consult the original project and its authors for applicable model usage and redistribution terms. ## Interface and local validation - Input: `obs`, float32, shape `[1, 61]`. - Output: `actions`, float32, shape `[1, 14]`. - Observation normalization is included in the graph. - ONNX graph checker passed. - All 512 wide-distribution random input samples produced finite outputs. - Local CPU inference averaged approximately 0.027 ms per call over 1000 calls. Timing is specific to the test machine. See `validation_report.json` for recorded results. No source-checkpoint numerical parity comparison, physics rollout, or real-hardware test was performed. ## Minimal inference example Install `numpy` and `onnxruntime`, download the ONNX file, then run: ```python import numpy as np import onnxruntime as ort session = ort.InferenceSession( "BEST_alpha_walking.onnx", providers=["CPUExecutionProvider"] ) obs = np.zeros((1, 61), dtype=np.float32) actions = session.run(["actions"], {"obs": obs})[0] print(actions.shape) # (1, 14) ``` Zero observations here are synthetic smoke-test data. A robot rollout needs the upstream observation layout, control loop, and action processing; these raw outputs are not direct hardware commands.