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.
OmniLink Services / Service 02
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.
A deliverable you merge
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.
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.
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.
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
Each finding below came from a robot maker's publicly released description and was reproduced in both simulators. Makers are not named here.
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.
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.
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.
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.
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.
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
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
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
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
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
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
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
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
One robot model is one product variant's description. A gripper sold in six sizes is six models.
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.
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.
Pay once you've merged it or are happy with it. Applicable taxes separate.
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
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.
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.
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.
Tell us which values you can't share. We'll tell you what we can fix without them before any work starts.
That is Service 01, the robot assessment. A fixed model is the starting point for any assessment we run on it.
No. This is an independent OmniLink service. The examples come from publicly released robot descriptions and are reported without naming the makers.