
MuJoCo → MuJoCo
Exact injected ground truth separates parameter recovery from output agreement.
Validating Robot Digital Twins Under Edits
Robot Control and Intelligence Laboratory · Kyung Hee University
Green dashed: true TCP pathColored solid: model TCP path
Remove the identified payload. The error stays in the dense twin.
The central question
These are different questions. Dense calibration and SAPC both reproduce held-out motion to about 0.03 mm. Their explanations of an injected 0.8 kg payload are very different.


MuJoCo controlled study, measurement noise ×1. Colored bodies have fitted mass increments above 0.01 kg; color identifies location, not magnitude. All robot views use a common static pose. The payload block is a visual proxy for the injected inertial parameters.
The consequence of attribution
Remove the payload from the reference. Clear only the identified link-7 increment from each calibrated twin, without refitting. The other physical changes remain.
Switch between the loaded and edited twins.
After removal, mass corrections assigned to other links stay behind in the dense twin.
Noise ×1, held-out seeds 11 and 12. The unloaded reference still contains the link-3 and joint-4/joint-6 discrepancies; it is not the fully nominal negative control. Download these values (JSON).

Then every method finds the tool: calibrating the unloaded robot and fitting the tool alone gives 0.800 kg for SAPC and for the dense fits, and removing it leaves 0.02 mm. The robot's own change is still attributed differently. The dense calibration splits the link-3 change between links 3 and 4, so replacing link 3 by a nominal part through its own correction removes only half of the change, 0.37 mm against 0.71 mm without the edit, while the SAPC twin returns to 0.026 mm, the level of the true parameters.
Edit certification
Corrections that differ along the structural null space N of the dynamics reproduce every free-space motion. An edit E(ξ) = Lξ + c keeps every such pair equivalent if and only if L maps N into itself.

Edits by known inertia, such as subtracting a weighed tool or adding a known payload, and edits of joint friction. They hold for every twin that reproduces the motion, whatever correction it carries.
Clearing or replacing what the twin attributed to a link, or to the rotor inertia. On an arm with revolute joints a point mass on a joint axis belongs equally to the link and its parent, so these edits rest on a prior; only clearing all links with the rotor inertia is certified.
The range of the edited quantity over all physically valid twins with the same torques. For a tool removal it spans a median of 2.7-2.9 kg on the FR3 and 3.8-4.9 kg on the iiwa, around a 0.8 kg tool. It needs no ground truth and says, before the edit, that the attribution decides it.
Subtracting the known tool from a dense twin can leave link 7 with an invalid inertia, and the projection that repairs it costs 1.20 mm. Moving the correction along the null space first, which changes no torque, keeps every link valid: the known-tool removal then reaches 0.025 mm for the dense twin and 0.028 mm for SAPC, against 0.026 mm for the true parameters.
The research
Simulation models are calibrated to measured behavior and then modified: a component removed, exchanged or added. Parameters that fit the data equally well can predict the modified model differently. For corrections linear in the parameters, a modification is guaranteed by fidelity if and only if it maps the calibration's null space into itself, the estimability condition in operational form. For robot twins, edits by known inertia or of joint friction are guaranteed; removing what a twin attributed to a link is not on revolute arms and rests on a prior. SAPC, a simulator-native calibration, states that prior as sparse change over body and joint groups, writes its correction into the executable model and flags edits the data leave undecided. On a Franka FR3 reference data set, full-library calibrations reproduce held-out motion to 0.05 mm, yet dense and regularized twins put 0.13-0.18 kg of a 0.8 kg tool on the flange, dense twins miss its removal by 12 mm, and SAPC recovers 0.79 kg and 0.1 mm. In a pre-registered 300-pattern tool benchmark, joint-torque payload identification attributes the tool best after unloaded-first calibration, and SAPC flags 88 % of its misattributions at a flag rate of 74 %, leaving 5 % of the fits wrong and unflagged against 20-23 % for Bayesian enumerations. On the Menagerie iiwa model, a near-alias between wrist links leaves the tool mass undecided by these data without a location prior. Gazebo, Isaac Sim and a blinded physical FR3 session complete the validation.
Structure-aware physical calibration
SAPC updates an existing twin under a sparse-change prior: a payload, a worn joint or a replaced component changes only a few physical groups. It returns the twin together with what the data did not decide.
Subtract nominal inverse dynamics from measured torque. Read an inertial regressor off the simulator and add friction and armature terms: 112 coefficients in 15 physical groups.
Forward selection from the uncorrected twin, a backward pass and one-for-one exchanges, scored by blocked cross-validation with the one-standard-error rule. Every fit is bounded to stay physical.
Report the tied supports, the directions shared inside a support and the leakage interval of the intended edit. Write the corrections into native simulator fields.

Dense least squares chooses the minimum-norm member of the equivalence class, a physically consistent fit one inside the consistency cone, a log-det fit the one closest to the nominal bodies, payload identification assumes that only the flange changed, and Bayesian model selection places the same sparse prior as SAPC but reports a posterior instead of a tie. All of them are compared on the same rows, folds and groups.
Manufactured discrepancies, other simulators and a physical robot
On the FR3 with injected changes, all methods reproduce the held-out motion. Only some place the 0.8 kg tool on the flange, and the replication over 20 new trajectory sets and 10 noise draws shows how often.
| Twin | Replay TCP mm | Payload kg | Correct support of 200 | Tool misattributed of 200 |
|---|---|---|---|---|
| Uncalibrated | 14.43 | – | – | – |
| Link 7 only (payload identification) | 2.65 | 0.861 | 0 % | 0 % |
| Dense LS | 0.027 | 0.130 | – | – |
| Dense, pseudo-inertia LMI | 0.030 | 0.130 | 0 % | 100 % |
| Dense, log-det to nominal | 0.030 | 0.180 | 0 % | 100 % |
| Group lasso | 0.046 | 0.138 | 0 % | 100 % |
| Bayesian support selection | 0.024 | 0.800 | 100 % | 0 % |
| SAPC | 0.030 | 0.794 | 94 % | 4.5 %, all flagged |
Link 7 only misses the other injected changes, which is why it replays at 2.65 mm. The replications use trajectories and noise draws never seen while the method was designed; the method was frozen before they were run.

Exact injected ground truth separates parameter recovery from output agreement.

Calibration also identifies the rotor inertia missing from the SDF description.

SAPC selects exactly the four injected groups in all 20 noise draws, and nothing on nominal data.
| Reference | Dense TCP mm | SAPC TCP mm | Dense payload kg | SAPC payload kg |
|---|---|---|---|---|
| MuJoCo | 0.027 | 0.030 | 0.130 | 0.794 |
| Gazebo | 0.34 | 0.20 | 0.131 | 0.797 |
| Isaac Sim | 0.26 | 0.26 | 0.131 | 0.795 |

A second manipulator
On the KUKA LBR iiwa 14 model a heavier link 3 with the full 0.8 kg tool and a heavier link 4 with a 0.35 kg tool differ by 0.002 N m on the identification trajectories. Without a location prior, no method decides between them from these data. What matters is whether it says so.

| Twin | Correct support | Tool misplaced | Misplaced and flagged |
|---|---|---|---|
| Dense LMI | 0 % | 100 % | no flag |
| Bayesian selection, inflated | 0 % | 100 % | 100 %* |
| Bayesian selection, uninflated | 8 % | 82 % | 100 %* |
| SAPC | 5 % | 95 % | 78 % (2 SE) 100 % (band) |
*The 95 % credible interval of the tool mass; the posterior still puts at least 0.95 on the wrong support in 99 % (inflated) and 69 % (uninflated) of the runs. Flags recomputed with the pre-registered edit flag of the revision (exploratory on these runs).
SAPC's parsimony band contains the true support in every run; its paired edit flag catches 148 of its 190 misplaced tools and the whole band catches all of them, while the uninflated posterior keeps a few percent on the other support and its interval flags every misplacement. The report also says what to do next: use the tool's known inertia, which is a certified edit, or excite the robot where the tied supports predict different torques.
Weighed blocks go on the flange (twice, remounted), on the joint-7 axis as a positive control of the report, on brackets at the link-6 and link-4 housings at least 80 mm from both bounding joint axes, or nowhere, in seven coded runs whose order the analyst does not know; the edits remove, exchange and relocate blocks by attribution and by known inertia for every method. A dry run of the whole session on a simulated stand-in meets all eight pre-registered criteria in five stress conditions. On the robot, SAPC places every off-axis block on the link that carries it, reports the on-axis block on links 6 and 7, returns no change where nothing was mounted, and predicts the housing edits through its own attribution where joint-torque payload identification misses them threefold.
Detection, stability and a negative control
A 20 g tool 25 mm off the flange axis is attributed to link 7 in every run at noise ×1, and a 10 % friction increase is always found. Where nothing changed, SAPC returns the uncorrected twin in every run.

| Reference / noise | Realizations | link3 | link4 |
|---|---|---|---|
| MuJoCo ×1 | 20 | 20 / 20 | 0 / 20 |
| Isaac Sim ×1 | 10 | 10 / 10 | 0 / 10 |
| MuJoCo ×3 | 10 | 10 / 10 | 0 / 10 |
| Isaac Sim ×3 | 10 | 10 / 10 | 0 / 10 |
On nominal data SAPC returns the uncorrected twin in all 80 MuJoCo runs of both robots and in all 10 Isaac Sim runs. Selection frequency on fixed trajectories is not a probability of being correct; the replications over new trajectory sets are.
What the evidence supports
Check first whether an edit is certified: known inertias and joint friction need no attribution. If the edit acts on where the twin placed inertia, read the ambiguity report and the leakage interval; when the report names the edited group, use the part's known inertia or excite the robot again.
Some limits hold for any calibration from free-space joint torques: a payload on the joint-7 axis produces the torques of a link-6 change, a mass at the iiwa's wrist center belongs equally to links 4–7, and a change spread over several links can be reproduced by one, which no report can detect. A dense CAD error of 5–10 % on every link defeats the sparse prior relative to the CAD twin; calibrating the unloaded robot first restores it.
Contact lies outside the theory: twins with identical free-space dynamics reproduce an unseen press task alike within one simulator, but contact laws differ across simulators.
Paper, code and research artifacts
Full method, controlled studies on the FR3 and the KUKA iiwa, cross-simulator comparisons, the physical FR3 test and limitations.
Source codeIdentification, native write-back, benchmarks and simulator collection scripts.
Data & modelsResult JSONs, fixed cross-simulator trajectories, generated worlds and the FR3 and KUKA iiwa models.
The MuJoCo excitation data can be regenerated from the fixed seeds using the supplied scripts. Gazebo and Isaac Sim logs are included to support identification without rerunning either reference simulator. The joint logs of the physical FR3 session are included in the trajectories archive. Model assets retain their original MuJoCo Menagerie licenses (FR3: Apache 2.0; KUKA iiwa 14: BSD-3).
Reference
Citation for the research manuscript.
@misc{park2026sapc,
title = {Fidelity Is Not Identification: Validating
Robot Digital Twins Under Edits},
author = {Park, Suhwan and Lee, Jihwan and Park, Jiyong and Kim, Sanghyun},
year = {2026},
url = {https://rcilab.khu.ac.kr/sapc}
}