OmniLink Services / Service 02

A robot model
you can trust.

We fix the robot description you already publish, or build one from your CAD. Checked in OmniSim and in plain MuJoCo, with a test you rerun on every release.

Values come from your files, datasheet and CAD. Accuracy against your physical robot has not been validated.

$200USD per robot model · fix
1 dayafter we receive the numbers we need
2simulators every fix is checked in
0calls required

A deliverable you merge

From a broken file
to a tested model.

A robot description is code. When its masses, limits or joints are wrong, every simulation, planner and learned policy built on it inherits the error, usually without a warning.

01 / THE FINDING

The problem, reproduced.

Before we change anything, we load your published model in OmniSim and in plain MuJoCo and record what goes wrong: a refusal to load, an arm that sags, a gripper that flies apart, a base that cannot reach its rated speed.

02 / THE FIX

A corrected description.

Your URDF or xacro with the defects fixed: in your format, your file layout and your naming. Every changed value is listed with its source in your datasheet, CAD or the numbers you send.

03 / THE TEST

One command, every release.

A test that loads the model in both simulators and checks the properties we fixed. Run it before each release, so an exporter or a copy-paste cannot quietly bring a defect back.

Measured in published robot files · October 2026

What we find
in real models.

Each finding below came from a robot maker's publicly released description and was reproduced in both simulators. Makers are not named here.

MASS & INERTIA

3.4× the real arm.

A collaborative arm whose link masses sum to 28.09 kg against an 8.2 kg datasheet. Gravity compensation, payload limits and any policy trained on it all start from the wrong robot.

WILL NOT LOAD

14 of 14 models refused.

An industrial arm family with no mass or inertia on any link. Plain MuJoCo refuses every model in the family; nothing downstream can simulate it.

PLACEHOLDERS

Effort 0, velocity 0.

Joints exported with zero effort and zero velocity, or the same 330 N·m on every joint, so the model either cannot move or can lift far more than the real robot.

SPEED LIMITS

0.449 m/s, rated 0.8.

A mobile base whose wheel velocity cap holds it to just over half its rated speed in both simulators. Navigation tuned on it would be tuned for the wrong robot.

MISSING LINKS

Six grippers, one gap.

A gripper family where one helper link in each of six sizes has no inertial. MuJoCo refuses all six; a one-line fix per size, once it is found.

IMPOSSIBLE PHYSICS

Inertia that cannot exist.

A mobile base whose inertia tensor violates the triangle inequality, which no rigid body can have. Plain MuJoCo refuses to load it.

Six robot makers have changed their published files after our reports; see below. A finding is a measured property of a file. It does not describe the physical robot, which may behave correctly.

Fixed by the makers · October 2026

Six makers changed
their published files.

After our reports, these robot makers corrected the descriptions they publish. Each fix was checked on the maker’s public repository on 29 October 2026, and each number was measured on the maker’s own files. Makers are not named.

Collaborative arm · fixed 7 days after our report

A slipped decimal moved the forearm 2 m.

Shoulder torque to hold the rated payload, arm level: as published 162.3 N·m, after the fix 111.4 N·m.

As published. The forearm centre of mass was written as 2.2034 m on a 298 mm link. Holding its rated payload with the arm level, the shoulder needed 162.3 N·m against a 157 N·m limit; in the hold the arm sagged up to 29.1° below level.

After the fix. The maker corrected the value to 0.2203 m in all four variants and thanked us for the report. On their fixed file the same hold needs 111.4 N·m and the arm stays within 1.28° of level, in OmniSim and plain MuJoCo alike.

6-axis collaborative arm · fixed 5 days after our report

Joint limits too weak for the arm’s own payload.

Shoulder torque limit in the description: as published 50.0 N·m, after the fix 179.4 N·m.

As published. Shoulder and elbow limits were 50 and 32 N·m. With 5 kg at 70 cm the shoulder needs 61.4 N·m: it pinned at its limit and the flange sagged 73 cm, in OmniSim and plain MuJoCo alike.

After the fix. The maker replaced the limits with its official torque limits (shoulder 179.4 N·m, a peak rating), now 2.9× what this hold needs.

Tactile gripper · fixed 1 day after our report

A gripper squeezing 3.6× harder than its motor can.

Squeeze force on a rigid 40 mm block: as published 30.59 N, after the fix 8.41 N.

As published. The finger joint was declared at 4 N·m in every format; the motor that ships in it delivers 1.1 N·m. On a rigid 40 mm block the simulated gripper squeezed with 30.59 N.

After the fix. The maker set 1.1 N·m in the URDF, Xacro, MJCF and USD files the next day. The same squeeze now measures 8.41 N, identical in OmniSim and plain MuJoCo.

Educational quadruped · fixed 1 day after our report

Head joints that could not move.

Head yaw reached after a 0.50 rad command: as published 0.00 rad, after the fix 0.50 rad.

As published. Both head joints had zero effort and zero velocity, so the head ignored every command: asked to turn 0.50 rad, it stayed at 0.00004 rad. A variant also carried a full head inertia on a near-massless body.

After the fix. The maker set 2.94 N·m and 0.5 rad/s on both joints in all five variants and corrected the inertia. The head now reaches 0.5000 rad in OmniSim and plain MuJoCo.

Tracked crawler platform · fixed the same day

An export swapped two axes of the centre of mass.

Centre of mass height above the hull bottom: as published 0.46 mm, after the fix 120.00 mm.

As published. The 27 kg crawler’s centre of mass sat 0.46 mm above the hull bottom and 11 cm off the centre line, putting about 79% of the weight on one track.

After the fix. The maker found the y and z axes had been swapped on export and corrected the file the same day: 120 mm up, on the centre line.

Open-hardware desktop arm · merged 3 days after our report

Placeholder limits 20× stronger than the servos.

Declared shoulder torque: as published 100.0 N·m, after the fix 4.9 N·m.

As published. Every joint was declared at 100 N·m and 100 rad/s. The shoulder servo stalls at 4.9 N·m. In our tests the arm still moved correctly, so this was a fidelity gap, not a failure.

After the fix. We sent a pull request with limits from the servo datasheets and the maker merged it. The shoulder is now 4.9 N·m, about twice the worst gravity load with a 300 g payload.

None of these makers has endorsed this service. Five corrected their files themselves; one merged a pull request we wrote. Findings are simulation of published files, not measurements of physical robots.

Two starting points

Fix what you publish.
Or build it from CAD.

One robot model is one product variant's description. A gripper sold in six sizes is six models.

Fix an existing description · $200 per model

  • Mass, centre of mass and inertia checked against your datasheet; physically impossible tensors corrected.
  • Missing or zero inertials that stop a model loading.
  • Joint limits, efforts and velocities: placeholders replaced with your rated values.
  • Coupled and mimic joints, wheel and gripper ranges, collision geometry that hits itself in normal poses.
  • Broken xacro or syntax, and variants that are byte copies of another model.
  • Delivered within one day of receiving any numbers we need from you.

Build from CAD · quoted per robot

  • For a robot with no published description, or one too far gone to repair.
  • From your STEP/CAD assembly, with per-link mass or material and your joint ratings.
  • We set the up axis, ground contact, joint axes, limits and collision shapes, and confirm each against your drawings.
  • Delivered as a URDF package with the same two-simulator test as a fix.
  • We confirm the price and delivery date after seeing the files, before any work starts.

Masses, inertias and ratings come from your files, datasheet and CAD. We do not measure your physical robot. Controller tuning, hardware calibration, safety certification and integration with your production stack are outside this scope.

Start with a file. Leave with a tested model.

Send the model.
We send the finding.

Tell us where your robot description lives and which datasheet it should match. We reply with what we reproduced and the exact list of numbers we still need, if any. You decide before we start.

No description yet? Send the CAD format and the number of joints, and we will quote the build.

Robot model fix

$200USD per robot model

Pay once you've merged it or are happy with it. Applicable taxes separate.

  • Reproduced finding in OmniSim and plain MuJoCo
  • Corrected description in your format
  • A sourced list of every changed value
  • One-command test to rerun on each release
  • Delivery within one day of your numbers
Send us your model ↗

Opens a chat with the OmniLink team, a real person who usually replies within a day. Leave your email so we can send the finding. Files and datasheets? Email us instead. No calls. This service is separate from OmniLink agent subscriptions.

Before you send

Questions, answered.

Why pay after delivery?

Because you can check the work before you pay for it. The finding is reproduced before we start, and the test shows the fix in both simulators. If the corrected model doesn't do what we said it would, you don't pay.

Will the fixed model match my physical robot?

It will match the numbers in your datasheet, CAD and the values you send us. Whether those numbers match the hardware is a separate question: measuring a physical robot is not part of this service.

Do we have to use OmniSim afterwards?

No. You receive a standard robot description in your own format. The test also checks it in plain MuJoCo. OmniSim is free and open source if you want to keep using it; Windows has the only prebuilt package, and Linux builds from source.

What if you need numbers we keep private?

Tell us which values you can't share. We'll tell you what we can fix without them before any work starts.

Do you also test how the robot behaves?

That is Service 01, the robot assessment. A fixed model is the starting point for any assessment we run on it.

Are you affiliated with the robot makers in these examples?

No. This is an independent OmniLink service. The examples come from publicly released robot descriptions and are reported without naming the makers.