Dense LS motionWrong payload attribution
SAPC motionCorrect payload attribution

Fidelity is not identification.

Validating Robot Digital Twins Under Edits

Suhwan Park · Jihwan Lee · Jiyong Park · Sanghyun Kim

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.

Dense LS after edit11.73 mm
SAPC after edit0.099 mm

The central question

Does the twin behave correctly?
Or does it contain the right physics?

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.

Dense calibrated twin with mass increments distributed over links 3 through 7.
Dense least squares0.130 kgEstimated payload
Same loaded behavior
≈

Different physical
attribution

Then remove the payload ↓
SAPC calibrated twin with mass corrections at link 3 and link 7.
SAPC0.794 kgEstimated payload

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

Change the tool.
Test the explanation.

Remove the payload from the reference. Clear only the identified link-7 increment from each calibrated twin, without refitting. The other physical changes remain.

Green dashed curves show the actual unloaded-reference TCP path; colored solid curves show each twin's executed path up to the current time, at the same spatial scale. A replay of the saved noise-×1 fits on the first 6 s of held-out seed 11. Same target trajectory and PD control law; the closed-loop torques can differ. The video shows instantaneous errors. The aggregate results below average two full 20 s trajectories.

Replay TCP RMSE

Switch between the loaded and edited twins.

Uncalibrated twin2.60mm
Dense least squares11.73mm
SAPC0.099mm

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).

See the complete payload-edit figure
Three-panel figure showing payload removal, true and estimated link mass increments, and loaded versus removed TCP errors on a logarithmic scale.
Replacing the payload with a known 0.5 kg tool gives the same pattern: 11.73 mm for dense LS and 0.100 mm for SAPC. Click the figure to inspect it at full resolution.

What if the robot is calibrated without the tool first?

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

Which edits can
fidelity guarantee?

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.

Two-link example: a clamp on the elbow axis attached to either link gives the same torques; subtracting its known mass keeps equivalent twins equivalent, clearing the lower link's increment splits them.
A 0.5 kg clamp on the elbow axis produces the same joint torques attached to either link. Subtracting its known mass keeps every equivalent twin equivalent; clearing the lower link's increment leaves zero, half or all of the clamp, depending on where the twin put it.
  1. ✓

    Certified by fidelity

    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.

  2. ✗

    Not certified

    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.

  3. ↔

    Leakage interval

    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.

Known edits work for every twin, once the twin is physically valid

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

Abstract

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

State the prior.
Report where it decided.

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.

  1. 01

    Explain the residual

    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.

  2. 02

    Select 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.

  3. 03

    Report and write back

    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.

SAPC pipeline: reference data and nominal twin, a 112-column regressor, bounded group selection with blocked cross-validation, projection and native write-back, and separate behavioral, attribution and residual evaluation with an ambiguity report.
Behavioral fidelity, physical attribution and remaining model discrepancy are evaluated separately. Click to enlarge.

Every calibration chooses a representative

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

Every method fits.
Few attribute.

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.

MuJoCo, measurement noise ×1. Replay and payload: the reference data set. Correct support and tool misattributed (link-7 mass off by more than 20 %): 200 replications.
TwinReplay TCP
mm
Payload
kg
Correct support
of 200
Tool misattributed
of 200
Uncalibrated14.43–––
Link 7 only (payload identification)2.650.8610 %0 %
Dense LS0.0270.130––
Dense, pseudo-inertia LMI0.0300.1300 %100 %
Dense, log-det to nominal0.0300.1800 %100 %
Group lasso0.0460.1380 %100 %
Bayesian support selection0.0240.800100 %0 %
SAPC0.0300.79494 %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.

Native MuJoCo view of the FR3 reference.
Manufactured discrepancies

MuJoCo → MuJoCo

Exact injected ground truth separates parameter recovery from output agreement.

Native Gazebo view of the FR3 reference.
Another simulator 01

Gazebo → MuJoCo

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

Native Isaac Sim view of the FR3 reference.
Another simulator 02

Isaac Sim → MuJoCo

SAPC selects exactly the four injected groups in all 20 noise draws, and nothing on nominal data.

Held-out replay and estimated payload, measurement noise ×1; true payload 0.8 kg.
ReferenceDense TCP
mm
SAPC TCP
mm
Dense payload
kg
SAPC payload
kg
MuJoCo0.0270.0300.1300.794
Gazebo0.340.200.1310.797
Isaac Sim0.260.260.1310.795
Watch the same-torque, three-simulator illustration
A separate nominal illustration: 0.65 s of physical time, played 8× slower, with the same recorded torque and initial state. No payload is added. Gazebo lacks rotor armature. The original simulator trajectories are visualized with a common MuJoCo renderer; these are not native-simulator video captures.
Separate representable differences from remaining simulator discrepancy
Cross-simulator replay error comparison: nominal Gazebo calibration reduces 0.52 to 0.11 mm, while nominal Isaac Sim requires no correction.
Nominal Gazebo data alone reveal the armature deficit and joint-7 compensation; removing the armature from the calibrated twin returns it to the simulator-only level. Nominal Isaac Sim data return the uncorrected twin. The matched-parameter twin is a reference for the remaining discrepancy, not a universal error floor.

A second manipulator

A spherical wrist.
An attribution these data do not decide.

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.

Native MuJoCo view of the KUKA LBR iiwa 14 at the home pose of the test bed.
MuJoCo Menagerie model, unmodified, with the injected discrepancies of the FR3 study.
200 replications (20 trajectory sets × 10 noise draws), noise ×1; true payload 0.8 kg.
TwinCorrect
support
Tool
misplaced
Misplaced
and flagged
Dense LMI0 %100 %no flag
Bayesian selection, inflated0 %100 %100 %*
Bayesian selection, uninflated8 %82 %100 %*
SAPC5 %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).

Reported, not hidden.

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.

A blinded session on a physical FR3

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

Small changes found.
Nothing invented.

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.

Detection power: probability that link 7 is selected against tool mass for four lateral offsets and two noise levels on both robots, and joint-4 friction detection with false-alarm rates of SAPC and Bayesian selection.
A tool on the joint-7 axis is exchangeable with link 6 and cannot be attributed; the report names link 7 in every such run. Without any change, the Bayesian selection reports one in 80 % (FR3) and 100 % (iiwa) of the runs at noise ×1, SAPC in none.
Fixed trajectories, resampled measurement noise: selection counts for the near-aliased link groups.
Reference / noiseRealizationslink3link4
MuJoCo ×12020 / 200 / 20
Isaac Sim ×11010 / 100 / 10
MuJoCo ×31010 / 100 / 10
Isaac Sim ×31010 / 100 / 10
Nothing injected. Nothing invented.

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.

Inspect the full stability and group-separation figure
Selection frequencies, normalized physical estimates and a group-separation matrix.
Payload estimates at noise ×1: MuJoCo 0.794 ± 0.001 kg and Isaac Sim 0.795 ± 0.001 kg. Link3's individual mass remains structurally unidentifiable.

What the evidence supports

Validate the edits
a twin will undergo.

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

Explore the work.
Reproduce the comparisons.

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

Cite this work

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}
}