Robotics
Asimov
ONNX

Asimov 1 locomotion policy checkpoint β€” 2026-10-05 independent upper-body control

  • Velocity-commanded locomotion policy for Asimov 1, trained in Isaac Lab with PPO and adversarial motion priors (AMP).
  • The policy controls the 12 leg joints. The waist and arms receive independent position targets, randomized during training so the policy learns to balance through upper-body motion.
  • Exported from model_9500.pt in the 2026-10-05_17-24-12_upperik_new_ankle run.
  • policy.onnx is the exported policy for inference, producing leg joint-position actions.
  • policy.pt is the same policy as TorchScript, for running it from PyTorch.
  • agent.yaml records the actor-critic and AMP training settings, including the motion data configuration.
  • env.yaml records the simulation and locomotion task settings, including observations, actions, commands, and rewards.
  • Training and evaluation code: menloresearch/cyclotron.

Independent upper-body control

The actor receives joint-position and joint-velocity feedback for all 23 motor joints, but outputs actions only for the 12 leg joints. A separate controller supplies position targets for the 11 waist and arm joints; those targets are not generated by this ONNX policy.

The previous-action observation contains the 12 raw leg actions followed by 11 zeros, retaining a 23-value history term and a total observation size of 78.

Ankle settings

  • Ankle-roll action scale is 0.08; the other leg joints use 0.25.
  • Ankle-roll position targets are clipped to [-0.09, 0.09] radians after applying the action scale and default pose.
  • Ankle-pitch stiffness/damping are 224.42 / 10.201.
  • Ankle-roll stiffness/damping are 35.2 / 1.6.

Use env.yaml for the full actuator settings, default pose, and action configuration.

How to run

Load policy.onnx with ONNX Runtime, or policy.pt with PyTorch, in an Asimov 1 runtime that supports 12 leg actions, independent upper-body position targets, and the observation recipe in env.yaml.

The runtime builds observations and runs the policy at 50 Hz. It converts each raw leg action into a position target using default_joint_pos + action_scale * action, then applies the ankle-roll target clipping. These operations happen outside the ONNX graph. Deployment metadata in the ONNX records the action joint order, scales, offsets, clips, and PD gains.

Inputs and outputs

  • Input: float32 obs, shape [1, 78]: base angular velocity, projected gravity, velocity command (vx, vy, wz), full-body joint positions and velocities in motor-slot order, and the zero-padded previous action.
  • Output: float32 actions, shape [1, 12], in this order: left hip pitch, hip roll, hip yaw, knee, ankle pitch, ankle roll; right hip pitch, hip roll, hip yaw, knee, ankle pitch, ankle roll.
  • Control rate: 50 Hz (sim.dt = 0.005, decimation = 4).
  • Trained in Isaac Lab (PhysX).

The full observation order and action joint list are recorded in env.yaml.

Downloads last month
37
Video Preview
loading

Collection including Menlo/asimov1-locomotion-26-10-05-upper-body