Skip to content

It learned to turn in place: 6 of 7 planned conditions met. The miss was a left-right tracking gap of 15 points against a limit of 10. A reflex policy for lucen/laika.

robotlaika50 Hz

Use it from Python

The same download from a script or a notebook.

from lucen import Hub

hub = Hub()
hub.pull("lucen/laika-omni-c2-700", "./laika-omni-c2-700")

The module comes with the CLI. Python guide.

In simulation

Laika v2, before the simulator starts

Runs in your browser. It downloads about 11 MB the first time.

Results as the publisher reported them in the README.

Measured in simulation. 13 commands, 20 seeds each, at 80% motor power.

A command passes when every seed stays upright for the whole run and tracks 85% to 115% of the command. A check passes at 20 of 20 seeds.

TestResultReading
Stand stillPass20 of 20 upright
Forward 0.15 m/sFail20 of 20 upright, 78% of the commanded speed
Forward 0.30 m/sPass20 of 20 upright, 90% of the commanded speed
Backward 0.10 m/sFail20 of 20 upright, 143% of the commanded speed
Backward 0.20 m/sPass20 of 20 upright, 103% of the commanded speed
Sideways left 0.10 m/sFail20 of 20 upright, 4% of the commanded sideways speed
Sideways right 0.10 m/sFail20 of 20 upright, -1% of the commanded sideways speed
Turn left 0.20 rad/sFail20 of 20 upright, 81% of the commanded turn rate
Turn right 0.20 rad/sFail20 of 20 upright, 59% of the commanded turn rate
Forward 0.20 m/s, turn left 0.20 rad/sPass20 of 20 upright, 85% of the commanded speed, 95% of the commanded turn rate
Forward 0.20 m/s, turn right 0.20 rad/sFail20 of 20 upright, 87% of the commanded speed, 29% of the commanded turn rate
Forward 0.15 m/s, sideways left 0.10 m/sFail20 of 20 upright, 78% of the commanded speed, -11% of the commanded sideways speed
Forward 0.15 m/s, sideways right 0.10 m/sFail20 of 20 upright, 78% of the commanded speed, 9% of the commanded sideways speed

How it was trained

Its training run is private to the person who ran it. Published .

Observation
215 values in 8 blocks: base angular velocity, projected gravity, commands, joint position relative, joint velocity, last action, gait phase, frame history

README

README.md

laika-omni-c2-700

It learned to turn in place: 6 of 7 planned conditions met. The miss was a left-right tracking gap of 15 points against a limit of 10.

LineWalking in any direction
What changedOne new command, turning in place. The rewards stayed as they were, and gain randomization went back to 10%.
CheckpointIteration 700.
In simulationPassed some of its tests
On the real robotDeployed
Exported2026-08-08

Lineage

Trained from laika-omni-s1e, resumed at checkpoint 500. laika-omni-s1e is not published on this hub.

Inputs and outputs

Shown in the Contract card

This section is read from the contract stamped inside the ONNX file. The robot refuses a policy whose contract does not match its own. The same contract is in io_contract.json.

The hub stamped this file for lucen/laika: its joints, actions, senses and rate are the robot's declared interface.

Observation215 values: base angular velocity (3), gravity direction (3), velocity command (3), joint positions (12), joint velocities (12), previous action (12), gait phase (2), past frames (168)
Action12 values, one per joint, clipped to ±1
Action scale0.5 on every joint
Control rate50 Hz
Gait cycle0.5 s
Starting base height0.38 m
Joint orderl_hip_pitch_joint, l_hip_roll_joint, l_hip_yaw_joint, l_knee_joint, l_ankle_pitch_joint, l_ankle_roll_joint, r_hip_pitch_joint, r_hip_roll_joint, r_hip_yaw_joint, r_knee_joint, r_ankle_pitch_joint, r_ankle_roll_joint

Plant it was trained against

Full values in the Files tab
Torque limitRS00 11 N·m, RS02 17 N·m, RS06 12 N·m
Velocity limitRS00 33 rad/s, RS02 20 rad/s, RS06 10 rad/s
ArmatureRS00 0.0015, RS02 0.0032, RS06 0.007
Joint frictionRS00 0.13, RS02 0.12, RS06 0.15
Joint damping0.02
Default stiffness and dampingRS00 12 and 0.6, RS02 20 and 1, RS06 30 and 1.5
URDF and USD fingerprintsd6fab96bfc280a4d and 92b141c8dd200483

If the robot's motors differ from these, the simulator warns and the real robot refuses the policy.

Sim tests

Shown above

Measured in simulation. 13 commands, 20 seeds each, at 80% motor power.

A command passes when every seed stays upright for the whole run and tracks 85% to 115% of the command. A check passes at 20 of 20 seeds.

TestResultReading
Stand stillPass20 of 20 upright
Forward 0.15 m/sFail20 of 20 upright, 78% of the commanded speed
Forward 0.30 m/sPass20 of 20 upright, 90% of the commanded speed
Backward 0.10 m/sFail20 of 20 upright, 143% of the commanded speed
Backward 0.20 m/sPass20 of 20 upright, 103% of the commanded speed
Sideways left 0.10 m/sFail20 of 20 upright, 4% of the commanded sideways speed
Sideways right 0.10 m/sFail20 of 20 upright, -1% of the commanded sideways speed
Turn left 0.20 rad/sFail20 of 20 upright, 81% of the commanded turn rate
Turn right 0.20 rad/sFail20 of 20 upright, 59% of the commanded turn rate
Forward 0.20 m/s, turn left 0.20 rad/sPass20 of 20 upright, 85% of the commanded speed, 95% of the commanded turn rate
Forward 0.20 m/s, turn right 0.20 rad/sFail20 of 20 upright, 87% of the commanded speed, 29% of the commanded turn rate
Forward 0.15 m/s, sideways left 0.10 m/sFail20 of 20 upright, 78% of the commanded speed, -11% of the commanded sideways speed
Forward 0.15 m/s, sideways right 0.10 m/sFail20 of 20 upright, 78% of the commanded speed, 9% of the commanded sideways speed

Real robot

The real-robot deployment policy, chosen after a comparison with laika-omni-c2-a800.

Note

It changed more than one thing. Three randomizations from another line stayed on, and its parent trained with them off.

Where it comes from

Lucen Robotics trained this policy for Laika in Isaac Lab. The inputs, outputs and plant come from the ONNX file's own stamp. The sim tests, where there are any, come from the training log's results.