Robot Calibration Service — Minotor Labs

Robot Calibration Service

We Make
Industrial Robots
Accurate.

Industrial robots are built for repeatability — not accuracy. The difference between where a robot thinks it is and where it actually is can be 2 to 5 millimetres or more, straight out of the box. For precision applications, that's unacceptable.

The Problem & The Fix

Precision Metrology.
Controller-Level Results.

MINOTOR Labs offers a kinematic calibration service that closes the accuracy gap. We measure your robot's true behaviour using precision metrology — laser trackers and photogrammetric systems — then identify the real geometric parameters of your specific machine.

Every robot is slightly different due to manufacturing tolerances, assembly deviations, and wear. Our software builds a corrected kinematic model unique to your robot — not the nominal model that shipped from the factory.

The output is loaded directly into the robot controller as a precision file. No external compensation layers. No runtime corrections. No additional hardware. The robot simply operates from a better model of itself.

Sub-millimeter absolute positioning

Positional accuracy after calibration that far exceeds factory specifications.

No hardware modifications

Pure model correction — the calibration lives inside the robot controller.

Proprietary software platform

Developed entirely in-house — purpose-built for this problem, not a generic tool.

On-site service

We bring the measurement equipment to your facility. Minimal downtime.

Our Process

Four Stages.
One Precise Robot.

01

Measure

We deploy precision metrology equipment — laser trackers and photogrammetric systems — on-site at your facility. The robot is moved through a carefully designed set of configurations to capture its true end-effector pose at each position.

02

Analyse

Our software analyses the quality of the measurement dataset — checking joint configuration coverage, identifying underexcited axes, detecting redundant poses, and confirming the data is sufficient to reliably identify all kinematic parameters.

03

Optimise

A dual-stage calibration pipeline processes the data. The first stage establishes the robot's real kinematic geometry — link lengths, offsets, and angular deviations. The second stage refines the tool centre point using probe-sphere contact measurements.

04

Deploy

The corrected kinematic model is loaded directly into your KUKA robot controller as a .prec file. No external software. No middleware. No application-level corrections. Your robot now operates from a refined absolute model.

Use Cases

Built for Any Application
Where Accuracy Matters.

Milling

Precision material removal where positional drift compounds across a toolpath.

Drilling

Hole placement accuracy in aerospace, automotive, and structural components.

Trimming

Consistent edge and contour trimming on complex composite or sheet-metal parts.

Automated Inspection

Sensor or probe positioning that demands repeatable absolute coordinates.

Additive Manufacturing

Deposition accuracy across large workspaces where nominal models fall short.

Assembly

High-tolerance part mating and fastening in automotive and electronics production.

Calibration Report

Calibration And Verification Diagnostics Sample

Run ID: 20260505_164735_fb4832  ·  2026-05-05  ·  Health Score: 77/100 — Good

Good
This tab compares the calibrated result against the nominal root on the same final-stage filtered point set. Positive percentages mean the error became smaller.
Nominal mean
0.478
mm before calibration
Calibrated mean
0.193
mm after calibration
Mean improvement
+59.7%
position error reduction
Max improvement
+61.1%
worst-case reduction
Position error: nominal root vs calibrated Nominal root Calibrated Mean Nominal 0.4782 mm Calibrated 0.1929 mm Max Nominal 1.1318 mm Calibrated 0.4401 mm Std Nominal 0.2022 mm Calibrated 0.0863 mm
Baseline Before photogrammetry_full (after photogrammetry_init)
Final Calibrated result
Stage photogrammetry_full
Compared samples 78
Rotation weight 0.0000
Metric Nominal root Calibrated Delta Improvement
Mean position error 0.4782 mm 0.1929 mm 0.2853 mm +59.7%
Max position error 1.1318 mm 0.4401 mm 0.6916 mm +61.1%
Std position error 0.2022 mm 0.0863 mm 0.1159 mm +57.3%
Run ID 20260505_164735_fb4832
Timestamp 2026-05-05T16:47:58
Scope Final (photogrammetry_full)
Method Jacobian SVD correlation
Bad |r| threshold 0.900
B (77/100) Good - minor correlations, acceptable for calibration
Link Parameter link1/offset_rx link1/offset_ry link1/offset_rz link2/offset_rx link2/offset_ry link2/offset_rz link3/offset_x link3/offset_rx link3/offset_ry link3/offset_rz link4/offset_rx link4/offset_ry link4/offset_rz link5/offset_x link5/offset_z link5/offset_ry link5/offset_rz link6/offset_x link6/offset_z link6/offset_rx link6/offset_ry link6/offset_rz
link1 link1/offset_rx 1.000 -0.221 -0.018 -0.068 -0.040 0.486 0.224 0.031 -0.004 -0.075 0.121 0.085 0.132 0.268 -0.016 0.093 0.018 -0.131 -0.025 0.007 0.032 0.259
link1 link1/offset_ry -0.221 1.000 0.039 -0.288 0.034 -0.526 -0.061 -0.027 0.046 -0.078 0.026 0.081 0.249 0.089 -0.097 0.129 0.081 0.261 -0.008 0.093 0.105 0.203
link1 link1/offset_rz -0.018 0.039 1.000 0.671 0.992 0.310 0.374 -0.234 -0.875 -0.439 0.765 0.052 -0.040 -0.066 -0.484 -0.011 0.120 -0.054 -0.039 0.047 0.114 0.076
link2 link2/offset_rx -0.068 -0.288 0.671 1.000 0.710 0.058 0.218 0.370 -0.782 -0.160 0.248 -0.112 -0.103 0.059 -0.037 -0.091 -0.003 -0.226 0.053 -0.085 -0.007 0.050
link2 link2/offset_ry -0.040 0.034 0.992 0.710 1.000 0.265 0.378 -0.128 -0.899 -0.410 0.730 0.039 -0.050 -0.058 -0.440 -0.003 0.135 -0.046 -0.046 0.059 0.130 0.064
link2 link2/offset_rz 0.486 -0.526 0.310 0.058 0.265 1.000 0.239 -0.477 -0.189 -0.456 0.509 0.075 -0.097 -0.025 -0.640 -0.002 -0.032 -0.069 0.020 -0.024 -0.036 -0.015
link3 link3/offset_x 0.224 -0.061 0.374 0.218 0.378 0.239 1.000 -0.057 -0.467 -0.634 0.416 -0.131 0.094 -0.012 -0.401 0.038 0.180 0.078 -0.062 0.085 0.174 0.154
link3 link3/offset_rx 0.031 -0.027 -0.234 0.370 -0.128 -0.477 -0.057 1.000 -0.087 0.352 -0.576 -0.104 0.006 0.187 0.567 -0.013 0.047 -0.100 -0.010 -0.019 0.053 0.034
link3 link3/offset_ry -0.004 0.046 -0.875 -0.782 -0.899 -0.189 -0.467 -0.087 1.000 0.358 -0.605 0.030 -0.077 0.026 0.344 0.021 -0.147 0.060 0.039 -0.057 -0.143 -0.030
link3 link3/offset_rz -0.075 -0.078 -0.439 -0.160 -0.410 -0.456 -0.634 0.352 0.358 1.000 -0.553 0.462 -0.298 -0.276 0.731 -0.034 0.064 0.058 -0.194 0.159 0.037 -0.094
link4 link4/offset_rx 0.121 0.026 0.765 0.248 0.730 0.509 0.416 -0.576 -0.605 -0.553 1.000 0.014 0.053 -0.003 -0.721 0.190 0.087 0.049 -0.019 0.085 0.100 0.082
link4 link4/offset_ry 0.085 0.081 0.052 -0.112 0.039 0.075 -0.131 -0.104 0.030 0.462 0.014 1.000 -0.177 -0.414 -0.023 -0.080 0.176 0.196 -0.247 0.230 0.116 0.354
link4 link4/offset_rz 0.132 0.249 -0.040 -0.103 -0.050 -0.097 0.094 0.006 -0.077 -0.298 0.053 -0.177 1.000 0.250 -0.019 0.146 -0.159 -0.056 0.144 -0.100 -0.123 0.444
link5 link5/offset_x 0.268 0.089 -0.066 0.059 -0.058 -0.025 -0.012 0.187 0.026 -0.276 -0.003 -0.414 0.250 1.000 0.015 0.041 0.103 -0.239 0.263 -0.280 0.159 0.041
link5 link5/offset_z -0.016 -0.097 -0.484 -0.037 -0.440 -0.640 -0.401 0.567 0.344 0.731 -0.721 -0.023 -0.019 0.015 1.000 -0.003 -0.055 -0.100 -0.008 -0.032 -0.054 -0.021
link5 link5/offset_ry 0.093 0.129 -0.011 -0.091 -0.003 -0.002 0.038 -0.013 0.021 -0.034 0.190 -0.080 0.146 0.041 -0.003 1.000 -0.049 0.085 0.115 0.105 0.002 0.125
link5 link5/offset_rz 0.018 0.081 0.120 -0.003 0.135 -0.032 0.180 0.047 -0.147 0.064 0.087 0.176 -0.159 0.103 -0.055 -0.049 1.000 0.552 -0.530 0.541 0.990 -0.166
link6 link6/offset_x -0.131 0.261 -0.054 -0.226 -0.046 -0.069 0.078 -0.100 0.060 0.058 0.049 0.196 -0.056 -0.239 -0.100 0.085 0.552 1.000 -0.686 0.807 0.575 -0.014
link6 link6/offset_z -0.025 -0.008 -0.039 0.053 -0.046 0.020 -0.062 -0.010 0.039 -0.194 -0.019 -0.247 0.144 0.263 -0.008 0.115 -0.530 -0.686 1.000 -0.925 -0.527 -0.029
link6 link6/offset_rx 0.007 0.093 0.047 -0.085 0.059 -0.024 0.085 -0.019 -0.057 0.159 0.085 0.230 -0.100 -0.280 -0.032 0.105 0.541 0.807 -0.925 1.000 0.548 -0.021
link6 link6/offset_ry 0.032 0.105 0.114 -0.007 0.130 -0.036 0.174 0.053 -0.143 0.037 0.100 0.116 -0.123 0.159 -0.054 0.002 0.990 0.575 -0.527 0.548 1.000 -0.134
link6 link6/offset_rz 0.259 0.203 0.076 0.050 0.064 -0.015 0.154 0.034 -0.030 -0.094 0.082 0.354 0.444 0.041 -0.021 0.125 -0.166 -0.014 -0.029 -0.021 -0.134 1.000

Jacobian SVD correlation Analytics

Total parameters 22
Unique parameter pairs 231
Bad pairs (|r| ≥ 0.900) 3
Warning pairs (0.750 ≤ |r| < 0.900) 5
Average |r| (off-diagonal) 0.193
Max |r| pair link1/offset_rz ↔ link2/offset_ry (0.992)

Correlation validation (SVD covariance paths)

Max abs diff 2.2204e-16
Mean abs diff 1.7360e-17
Off-diag max abs diff 2.2204e-16
Off-diag mean abs diff 1.8186e-17
Run ID 20260505_164735_fb4832
Timestamp 2026-05-05T16:47:58
Scope photogrammetry_init
Method Jacobian SVD correlation (photogrammetry_init)
Bad |r| threshold 0.900
A (92/100) Excellent - parameters are well-identifiable, dataset is sufficient
Link Parameter base/x base/y base/z base/rx base/ry base/rz camera/x camera/y camera/z camera/rx camera/ry camera/rz
base base/x 1.000 0.219 -0.635 -0.129 -0.700 -0.334 -0.640 -0.103 -0.634 0.000 0.000 0.000
base base/y 0.219 1.000 0.403 0.749 -0.018 -0.586 -0.071 0.483 -0.071 0.000 0.000 0.000
base base/z -0.635 0.403 1.000 0.615 0.791 0.052 0.128 0.334 0.145 0.000 0.000 0.000
base base/rx -0.129 0.749 0.615 1.000 0.066 0.051 0.041 0.529 0.011 0.000 0.000 0.000
base base/ry -0.700 -0.018 0.791 0.066 1.000 0.030 0.068 0.065 0.109 0.000 0.000 0.000
base base/rz -0.334 -0.586 0.052 0.051 0.030 1.000 -0.038 -0.119 -0.056 0.000 0.000 0.000
camera camera/x -0.640 -0.071 0.128 0.041 0.068 -0.038 1.000 0.114 0.862 0.000 0.000 0.000
camera camera/y -0.103 0.483 0.334 0.529 0.065 -0.119 0.114 1.000 0.098 0.000 0.000 0.000
camera camera/z -0.634 -0.071 0.145 0.011 0.109 -0.056 0.862 0.098 1.000 0.000 0.000 0.000
camera camera/rx 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 1.000 0.000 0.000
camera camera/ry 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 1.000 0.000
camera camera/rz 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 1.000

Jacobian SVD correlation (photogrammetry_init) Analytics

Total parameters 12
Unique parameter pairs 66
Bad pairs (|r| ≥ 0.900) 0
Warning pairs (0.750 ≤ |r| < 0.900) 2
Average |r| (off-diagonal) 0.153
Max |r| pair camera/x ↔ camera/z (0.862)
Run ID 20260505_164735_fb4832
Timestamp 2026-05-05T16:47:58
Scope photogrammetry_full
Method Jacobian SVD correlation (photogrammetry_full)
Bad |r| threshold 0.900
B (77/100) Good - minor correlations, acceptable for calibration
Link Parameter link1/offset_rx link1/offset_ry link1/offset_rz link2/offset_rx link2/offset_ry link2/offset_rz link3/offset_x link3/offset_rx link3/offset_ry link3/offset_rz link4/offset_rx link4/offset_ry link4/offset_rz link5/offset_x link5/offset_z link5/offset_ry link5/offset_rz link6/offset_x link6/offset_z link6/offset_rx link6/offset_ry link6/offset_rz
link1 link1/offset_rx 1.000 -0.221 -0.018 -0.068 -0.040 0.486 0.224 0.031 -0.004 -0.075 0.121 0.085 0.132 0.268 -0.016 0.093 0.018 -0.131 -0.025 0.007 0.032 0.259
link1 link1/offset_ry -0.221 1.000 0.039 -0.288 0.034 -0.526 -0.061 -0.027 0.046 -0.078 0.026 0.081 0.249 0.089 -0.097 0.129 0.081 0.261 -0.008 0.093 0.105 0.203
link1 link1/offset_rz -0.018 0.039 1.000 0.671 0.992 0.310 0.374 -0.234 -0.875 -0.439 0.765 0.052 -0.040 -0.066 -0.484 -0.011 0.120 -0.054 -0.039 0.047 0.114 0.076
link2 link2/offset_rx -0.068 -0.288 0.671 1.000 0.710 0.058 0.218 0.370 -0.782 -0.160 0.248 -0.112 -0.103 0.059 -0.037 -0.091 -0.003 -0.226 0.053 -0.085 -0.007 0.050
link2 link2/offset_ry -0.040 0.034 0.992 0.710 1.000 0.265 0.378 -0.128 -0.899 -0.410 0.730 0.039 -0.050 -0.058 -0.440 -0.003 0.135 -0.046 -0.046 0.059 0.130 0.064
link2 link2/offset_rz 0.486 -0.526 0.310 0.058 0.265 1.000 0.239 -0.477 -0.189 -0.456 0.509 0.075 -0.097 -0.025 -0.640 -0.002 -0.032 -0.069 0.020 -0.024 -0.036 -0.015
link3 link3/offset_x 0.224 -0.061 0.374 0.218 0.378 0.239 1.000 -0.057 -0.467 -0.634 0.416 -0.131 0.094 -0.012 -0.401 0.038 0.180 0.078 -0.062 0.085 0.174 0.154
link3 link3/offset_rx 0.031 -0.027 -0.234 0.370 -0.128 -0.477 -0.057 1.000 -0.087 0.352 -0.576 -0.104 0.006 0.187 0.567 -0.013 0.047 -0.100 -0.010 -0.019 0.053 0.034
link3 link3/offset_ry -0.004 0.046 -0.875 -0.782 -0.899 -0.189 -0.467 -0.087 1.000 0.358 -0.605 0.030 -0.077 0.026 0.344 0.021 -0.147 0.060 0.039 -0.057 -0.143 -0.030
link3 link3/offset_rz -0.075 -0.078 -0.439 -0.160 -0.410 -0.456 -0.634 0.352 0.358 1.000 -0.553 0.462 -0.298 -0.276 0.731 -0.034 0.064 0.058 -0.194 0.159 0.037 -0.094
link4 link4/offset_rx 0.121 0.026 0.765 0.248 0.730 0.509 0.416 -0.576 -0.605 -0.553 1.000 0.014 0.053 -0.003 -0.721 0.190 0.087 0.049 -0.019 0.085 0.100 0.082
link4 link4/offset_ry 0.085 0.081 0.052 -0.112 0.039 0.075 -0.131 -0.104 0.030 0.462 0.014 1.000 -0.177 -0.414 -0.023 -0.080 0.176 0.196 -0.247 0.230 0.116 0.354
link4 link4/offset_rz 0.132 0.249 -0.040 -0.103 -0.050 -0.097 0.094 0.006 -0.077 -0.298 0.053 -0.177 1.000 0.250 -0.019 0.146 -0.159 -0.056 0.144 -0.100 -0.123 0.444
link5 link5/offset_x 0.268 0.089 -0.066 0.059 -0.058 -0.025 -0.012 0.187 0.026 -0.276 -0.003 -0.414 0.250 1.000 0.015 0.041 0.103 -0.239 0.263 -0.280 0.159 0.041
link5 link5/offset_z -0.016 -0.097 -0.484 -0.037 -0.440 -0.640 -0.401 0.567 0.344 0.731 -0.721 -0.023 -0.019 0.015 1.000 -0.003 -0.055 -0.100 -0.008 -0.032 -0.054 -0.021
link5 link5/offset_ry 0.093 0.129 -0.011 -0.091 -0.003 -0.002 0.038 -0.013 0.021 -0.034 0.190 -0.080 0.146 0.041 -0.003 1.000 -0.049 0.085 0.115 0.105 0.002 0.125
link5 link5/offset_rz 0.018 0.081 0.120 -0.003 0.135 -0.032 0.180 0.047 -0.147 0.064 0.087 0.176 -0.159 0.103 -0.055 -0.049 1.000 0.552 -0.530 0.541 0.990 -0.166
link6 link6/offset_x -0.131 0.261 -0.054 -0.226 -0.046 -0.069 0.078 -0.100 0.060 0.058 0.049 0.196 -0.056 -0.239 -0.100 0.085 0.552 1.000 -0.686 0.807 0.575 -0.014
link6 link6/offset_z -0.025 -0.008 -0.039 0.053 -0.046 0.020 -0.062 -0.010 0.039 -0.194 -0.019 -0.247 0.144 0.263 -0.008 0.115 -0.530 -0.686 1.000 -0.925 -0.527 -0.029
link6 link6/offset_rx 0.007 0.093 0.047 -0.085 0.059 -0.024 0.085 -0.019 -0.057 0.159 0.085 0.230 -0.100 -0.280 -0.032 0.105 0.541 0.807 -0.925 1.000 0.548 -0.021
link6 link6/offset_ry 0.032 0.105 0.114 -0.007 0.130 -0.036 0.174 0.053 -0.143 0.037 0.100 0.116 -0.123 0.159 -0.054 0.002 0.990 0.575 -0.527 0.548 1.000 -0.134
link6 link6/offset_rz 0.259 0.203 0.076 0.050 0.064 -0.015 0.154 0.034 -0.030 -0.094 0.082 0.354 0.444 0.041 -0.021 0.125 -0.166 -0.014 -0.029 -0.021 -0.134 1.000

Jacobian SVD correlation (photogrammetry_full) Analytics

Total parameters 22
Unique parameter pairs 231
Bad pairs (|r| ≥ 0.900) 3
Warning pairs (0.750 ≤ |r| < 0.900) 5
Average |r| (off-diagonal) 0.193
Max |r| pair link1/offset_rz ↔ link2/offset_ry (0.992)
📖 How to interpret this tab
Metric How to understand Good sign Warning sign What to do
Condition number (J) Numerical stability of parameter estimation. Large value means tiny data noise can strongly change parameters. Low to moderate condition number. Very high condition number. Add orthogonal poses that excite different parameter directions, not repeats.
VIF / VIF status Collinearity indicator for each parameter. High VIF means a parameter is explained by others. Most parameters in OK range. Many WARNING/CRITICAL parameters. Collect poses where correlated parameters affect measurements differently.
Max |corr| / worst pair Strong linear dependency between parameter sensitivities in Jacobian. Low-to-moderate correlations for most parameters. Correlations near threshold for many pairs. Design measurements that change one member of the pair while keeping the other nearly fixed.
Uncertainty (σ) Estimated standard deviation of parameter (from Jacobian-based uncertainty). Small and balanced values. Very large values for specific parameters. Target those parameters with dedicated pose families.
B77 / 100
Good - minor correlations, acceptable for calibration
Health score weighting details
Config: C:\NeoSetDesign\nsd_monocular_calibration_app_py\nsd-monocular-calibration-app\health_score_config.yaml
Overall = correlation*0.90 + points_coverage*0.10
Correlation = median|r|*0.40 + bad_pairs*0.30 + vif*0.20 + rank*0.05 + cond*0.05
Correlation scoring = robust median|r|, near-bad penalty=6.0, VIF grace=5.0, cond grace=1e2.0
Points coverage thresholds ratio(samples/params): low=3.0, mid=6.0, good=10.0, full=12.0
High VIF values are normal and expected when optimizing many parameters (20+ DOF). Your Health Score already accounts for this. High VIF does NOT mean the calibration is unreliable — it means those parameters are statistically correlated. What matters: can your measurement data distinguish them? The Health Score answers this question.

Global Metrics

Jacobian size 468 observations × 22 parameters
Condition number (J) 16422.76
Log₁₀(condition) 4.22
Max singular value 2.6029e+04
Min singular value 1.5849e+00
Singular value ratio (min/max) 6.089112e-05
Max VIF 3289.33
Mean VIF 318.54
Parameters with VIF > 1000 2
Parameters with VIF > 100 5

Per-Parameter Analysis

Link Parameter VIF VIF status Uncertainty (σ) Max |corr| Worst correlated pair Identifiability
link1 link1/offset_rx 25.65 OK 3.6718e-04 0.4856 link2/offset_rz GOOD
link1 link1/offset_ry 38.67 OK 3.7929e-04 0.5262 link2/offset_rz GOOD
link1 link1/offset_rz 3289.33 CRITICAL 4.0774e-03 0.9916 link2/offset_ry CRITICAL: VIF critical; high corr
link2 link2/offset_rx 52.58 OK 7.7865e-04 0.7817 link3/offset_ry GOOD
link2 link2/offset_ry 2798.46 CRITICAL 4.7097e-03 0.9916 link1/offset_rz CRITICAL: VIF critical; high corr
link2 link2/offset_rz 73.30 OK 6.4514e-04 0.6402 link5/offset_z GOOD
link3 link3/offset_x 18.26 OK 4.8388e-01 0.6336 link3/offset_rz GOOD
link3 link3/offset_rx 149.15 WARNING 1.0551e-03 0.5761 link4/offset_rx NOTE: VIF elevated
link3 link3/offset_ry 27.10 OK 8.0322e-04 0.8993 link2/offset_ry GOOD
link3 link3/offset_rz 54.60 OK 6.2612e-04 0.7312 link5/offset_z GOOD
link4 link4/offset_rx 38.86 OK 1.0721e-03 0.7647 link1/offset_rz GOOD
link4 link4/offset_ry 14.14 OK 7.4900e-04 0.4615 link3/offset_rz GOOD
link4 link4/offset_rz 4.52 OK 4.0113e-04 0.4440 link6/offset_rz GOOD
link5 link5/offset_x 3.79 OK 2.2031e-01 0.4141 link4/offset_ry GOOD
link5 link5/offset_z 24.80 OK 5.6383e-01 0.7312 link3/offset_rz GOOD
link5 link5/offset_ry 3.07 OK 4.7871e-04 0.1901 link4/offset_rx GOOD
link5 link5/offset_rz 164.04 WARNING 2.1359e-03 0.9898 link6/offset_ry WARNING: VIF elevated; high corr
link6 link6/offset_x 6.95 OK 2.9845e-01 0.8073 link6/offset_rx GOOD
link6 link6/offset_z 22.81 OK 5.4073e-01 0.9253 link6/offset_rx WARNING: high corr
link6 link6/offset_rx 26.40 OK 1.2688e-03 0.9253 link6/offset_z WARNING: high corr
link6 link6/offset_ry 166.44 WARNING 3.2402e-03 0.9898 link5/offset_rz WARNING: VIF elevated; high corr
link6 link6/offset_rz 4.97 OK 9.9608e-04 0.4440 link4/offset_rz GOOD
Condition number 1.64e+04
QR effective rank 22 / 22
Observable 17
Borderline 5
Unobservable 0

Method: per-parameter observability via SVD projection + QR column pivoting for identifiability ranking

# Link Parameter Sensitivity (||J col||) Observability Index QR Identifiable Classification VIF Recommendation
1 link3 link3/offset_x 8.8318 0.0005 YES Borderline 18.26 Consider regularisation or additional poses
2 link5 link5/offset_x 8.8318 0.0005 YES Borderline 3.79 Consider regularisation or additional poses
3 link6 link6/offset_x 8.8318 0.0005 YES Borderline 6.95 Consider regularisation or additional poses
4 link6 link6/offset_z 8.8318 0.0005 YES Borderline 22.81 Consider regularisation or additional poses
5 link5 link5/offset_z 8.8318 0.0005 YES Borderline 24.80 Consider regularisation or additional poses
6 link6 link6/offset_rz 2238.1583 0.1365 YES Observable 4.97
7 link5 link5/offset_ry 3659.7336 0.2232 YES Observable 3.07
8 link6 link6/offset_ry 3981.5408 0.2428 YES Observable 166.44
9 link6 link6/offset_rx 4049.9659 0.2470 YES Observable 26.40
10 link4 link4/offset_ry 5019.8035 0.3062 YES Observable 14.14
11 link4 link4/offset_rz 5300.2646 0.3233 YES Observable 4.52
12 link4 link4/offset_rx 5814.4170 0.3546 YES Observable 38.86
13 link5 link5/offset_rz 5996.5206 0.3657 YES Observable 164.04
14 link3 link3/offset_ry 6481.1763 0.3953 YES Observable 27.10
15 link2 link2/offset_rx 9312.6586 0.5680 YES Observable 52.58
16 link2 link2/offset_ry 11232.2993 0.6851 YES Observable 2798.46 Very high VIF — strongly correlated with other params
17 link3 link3/offset_rx 11574.4279 0.7060 YES Observable 149.15
18 link3 link3/offset_rz 11800.9876 0.7198 YES Observable 54.60
19 link2 link2/offset_rz 13270.4860 0.8094 YES Observable 73.30
20 link1 link1/offset_rx 13793.3456 0.8413 YES Observable 25.65
21 link1 link1/offset_rz 14065.8960 0.8579 YES Observable 3289.33 Very high VIF — strongly correlated with other params
22 link1 link1/offset_ry 16395.4675 1.0000 YES Observable 38.67

Recommendations

• 5 parameter(s) are borderline — fix the weakest ones or add more informative measurement poses.
📖 How to interpret this tab
Metric How to understand Good sign Warning sign What to do
Axis span / bins / coverage Shows whether measurements really cover the working range instead of repeating the same zone. Most axes use all bins and coverage is close to 100%. Some axes use few bins or have narrow span. Add measurements at the missing ends of those axes; avoid adding near existing clusters.
Required Actions (Prioritized) Action list sorted by impact: P0 is blocking identifiability, P3 is optimization/cleanup. Only P2/P3 items remain. Any P0/P1 item is present. Execute P0 first, then P1; only then spend time on P2/P3.
Data dir C:\NeoSetDesign\nsd_monocular_calibration_app_py\projects\test11_smallarea\data\photogrammetry
Positions source MeasuredPositions.csv (standard)
Joints source Joints.csv
Discovered formats standard=True, camera_report=False
Joint samples 78
Positions samples 78
Matched IDs 78
Missing in positions none
Missing in joints none

Joint-space Coverage (A1..A6)

Axis Min Max Span Mean Std P05 P95
A1 16.937 76.987 60.050 49.717 13.599 30.463 70.869
A2 -133.658 -58.671 74.987 -95.972 14.713 -121.532 -71.667
A3 64.221 149.897 85.675 103.980 18.763 73.282 132.361
A4 -115.918 133.689 249.607 11.178 57.989 -75.697 115.945
A5 -114.162 111.502 225.664 -21.250 76.256 -111.850 95.254
A6 -151.158 59.998 211.156 -56.456 52.774 -129.759 28.750

Position Coverage (X, Y, Z)

Axis Min Max Span Mean Std P05 P95
X -3929.418 -3003.390 926.029 -3481.374 275.151 -3864.725 -3048.439
Y -1578.496 -343.257 1235.239 -830.142 266.445 -1370.256 -416.886
Z -345.327 829.496 1174.823 232.258 302.970 -247.066 733.440

Orientation Coverage (A, B, C / Az, El, Roll)

Axis Min Max Span Mean Std P05 P95
A 0.000 0.000 0.000 0.000 0.000 0.000 0.000
B 0.000 0.000 0.000 0.000 0.000 0.000 0.000
C 0.000 0.000 0.000 0.000 0.000 0.000 0.000

Additional Geometry Metrics

Joint NN (p50) 31.450
Camera NN (p50) 115.011
Radial std 137.768
View azimuth span -176.09 .. 176.26
View azimuth width 352.35
View elevation span -80.29 .. 74.60
View elevation width 154.89
Near-X alignment fraction 0.13

Recommendations

• Elevation diversity is limited; add captures from lower and higher viewpoints.
• Camera distance diversity is narrow; add both near and far camera positions.

Required Actions (Prioritized)

Priority Metric Current Target Required Action Why
P1 Elevation std 0.00 deg >= 15 deg Add captures from lower and higher viewpoints Low elevation diversity increases coupling between camera and robot parameters
P1 Radial distance std 137.77 >= 200 Add both near and far camera positions Narrow depth variation weakens separation of translational parameters

Coverage of robot joint configurations with focus on wrist axes A4/A5/A6

Joint Range Summary

Axis Min Max Span Mean Std
A1 16.937 76.987 60.050 49.717 13.599
A2 -133.658 -58.671 74.987 -95.972 14.713
A3 64.221 149.897 85.675 103.980 18.763
A4 -115.918 133.689 249.607 11.178 57.989
A5 -114.162 111.502 225.664 -21.250 76.256
A6 -151.158 59.998 211.156 -56.456 52.774

Coarse Arm Configurations (A1/A2/A3 signs)

Configuration Count Share % Interpretation
A1+ A2- A3+ 78 100.0% Dominant family

Wrist Sign Combinations (A4/A5/A6)

Sign combo Count Share % Status
+++ 0 0.0% MISSING
++- 5 6.4% RARE
+-+ 10 12.8% OK
+-- 26 33.3% OK
-++ 1 1.3% RARE
-+- 27 34.6% OK
--+ 2 2.6% RARE
--- 7 9.0% OK

Sparse Wrist Zones (12-bin histogram)

Axis Sparse bin range Count Sample IDs
A4 [-115.9, -95.1) 3 31, 70, 72
A4 [-95.1, -74.3) 2 28, 52
A4 [-74.3, -53.5) 3 16, 33, 44
A4 [92.1, 112.9) 2 30, 55
A5 [-95.4, -76.6) 3 2, 42, 58
A5 [-57.7, -38.9) 3 9, 26, 62
A6 [-151.2, -133.6) 3 21, 49, 71
A6 [42.4, 60.0] 1 68

Wrist Pair Coverage (6x6 occupancy)

Pair Occupied cells Occupancy % Sparse cells (≤2 points)
A4/A5 21/36 58.3% 10
A4/A6 23/36 63.9% 7
A5/A6 23/36 63.9% 9

Orientation Summary (Az/El/Roll)

Axis Min Max Span Std
Az 0.000 0.000 0.000 0.000
El 0.000 0.000 0.000 0.000
Roll 0.000 0.000 0.000 0.000
Samples used (kept) 78
Filtered samples excluded 0
Matched samples (raw) 78
Features A1, A2, A3, A4, A5, A6, Xc, Yc, Zc, Az, El, Roll
Source MeasuredPositions.csv (standard)
Feature A1 A2 A3 A4 A5 A6 Xc Yc Zc Az El Roll
A1 1.000 -0.005 -0.063 -0.003 0.237 -0.104 -0.695 -0.453 -0.132 0.000 0.000 0.000
A2 -0.005 1.000 -0.404 0.176 -0.283 0.195 0.596 -0.276 -0.039 0.000 0.000 0.000
A3 -0.063 -0.404 1.000 -0.114 -0.159 -0.004 -0.336 0.225 -0.443 0.000 0.000 0.000
A4 -0.003 0.176 -0.114 1.000 -0.685 0.384 0.091 0.412 0.240 0.000 0.000 0.000
A5 0.237 -0.283 -0.159 -0.685 1.000 -0.689 -0.335 -0.345 -0.394 0.000 0.000 0.000
A6 -0.104 0.195 -0.004 0.384 -0.689 1.000 0.220 0.282 0.239 0.000 0.000 0.000
Xc -0.695 0.596 -0.336 0.091 -0.335 0.220 1.000 0.096 0.211 0.000 0.000 0.000
Yc -0.453 -0.276 0.225 0.412 -0.345 0.282 0.096 1.000 0.091 0.000 0.000 0.000
Zc -0.132 -0.039 -0.443 0.240 -0.394 0.239 0.211 0.091 1.000 0.000 0.000 0.000
Az 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 1.000 0.000 0.000
El 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 1.000 0.000
Roll 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 1.000

Top Correlated Measurement Pairs

Feature A Feature B Pearson r |r|
A1 Xc -0.695 0.695
A5 A6 -0.689 0.689
A4 A5 -0.685 0.685
A2 Xc 0.596 0.596
A1 Yc -0.453 0.453
A3 Zc -0.443 0.443
A4 Yc 0.412 0.412
A2 A3 -0.404 0.404
A5 Zc -0.394 0.394
A4 A6 0.384 0.384
A5 Yc -0.345 0.345
A3 Xc -0.336 0.336

How strongly each camera measurement axis is co-directed with each robot joint axis.

Source MeasuredPositions.csv (standard)
Matched samples (kept) 78
Filtered excluded 0

Cross-Correlation Matrix

Meas \ Robot A1 A2 A3 A4 A5 A6
Xc -0.695 0.596 -0.336 0.091 -0.335 0.220
Yc -0.453 -0.276 0.225 0.412 -0.345 0.282
Zc -0.132 -0.039 -0.443 0.240 -0.394 0.239
Az 0.000 0.000 0.000 0.000 0.000 0.000
El 0.000 0.000 0.000 0.000 0.000 0.000
Roll 0.000 0.000 0.000 0.000 0.000 0.000

Per-Axis Alignment Summary

Measurement Axis Dominant Robot Axis Correlation |r| HHI Eff. DoF Verdict
Xc A1 -0.695 0.695 0.217 4.6 MODERATE
Yc A1 -0.453 0.453 0.176 5.7 WEAK
Zc A3 -0.443 0.443 0.219 4.6 WEAK
Az A1 0.000 0.000 0.000 1000000000000.0 DECOUPLED
El A1 0.000 0.000 0.000 1000000000000.0 DECOUPLED
Roll A1 0.000 0.000 0.000 1000000000000.0 DECOUPLED
Legend:LOCKED |r| ≥ 0.90 — almost entirely driven by one joint; STRONG |r| ≥ 0.70 — strong coupling; MODERATE |r| ≥ 0.50; WEAK |r| ≥ 0.30; DECOUPLED |r| < 0.30 (best diversity). HHI = concentration index (0.167=uniform, 1.0=single axis). Eff. DoF = 1/HHI (6=ideal, 1=worst).
Run ID 20260505_164735_fb4832
Timestamp 2026-05-05T16:47:58
Scope Final (photogrammetry_full)
Source Sample idx Sample ID Filtered Filter score Final residual Position residual Orientation residual tx ty tz rx ry rz
photogrammetry 0 1 NO 0.248033 0.248033 0.000000 0.072233 -0.168439 0.167127 0.000000 0.000000 0.000000
photogrammetry 1 2 NO 0.119376 0.119376 0.000000 0.103890 0.003742 -0.058682 -0.000000 -0.000000 0.000000
photogrammetry 2 3 NO 0.198451 0.198451 0.000000 0.024561 -0.194589 0.030243 -0.000000 -0.000000 0.000000
photogrammetry 3 4 NO 0.106314 0.106314 0.000000 0.034254 -0.085179 -0.053609 -0.000000 0.000000 0.000000
photogrammetry 4 5 NO 0.108011 0.108011 0.000000 -0.007145 0.011811 0.107126 -0.000000 -0.000000 0.000000
photogrammetry 5 6 NO 0.078764 0.078764 0.000000 0.035909 -0.054028 0.044669 -0.000000 -0.000000 0.000000
photogrammetry 6 7 NO 0.259460 0.259460 0.000000 0.123284 -0.195888 -0.117254 -0.000000 -0.000000 -0.000000
photogrammetry 7 8 NO 0.167045 0.167045 0.000000 -0.012905 0.165170 -0.021357 0.000000 0.000000 0.000000
photogrammetry 8 9 NO 0.180036 0.180036 0.000000 -0.080442 0.037031 0.156751 -0.000000 -0.000000 0.000000
photogrammetry 9 10 NO 0.092361 0.092361 0.000000 -0.084670 -0.020876 -0.030426 0.000000 0.000000 -0.000000
photogrammetry 10 11 NO 0.172148 0.172148 0.000000 -0.036485 -0.066858 -0.154382 0.000000 0.000000 0.000000
photogrammetry 11 12 NO 0.155519 0.155519 0.000000 -0.061176 -0.140236 -0.027884 -0.000000 -0.000000 -0.000000
photogrammetry 12 13 NO 0.258371 0.258371 0.000000 -0.099601 -0.077511 0.225448 -0.000000 -0.000000 -0.000000
photogrammetry 13 14 NO 0.227546 0.227546 0.000000 0.137619 -0.156396 -0.091535 -0.000000 -0.000000 0.000000
photogrammetry 14 15 NO 0.249098 0.249098 0.000000 -0.013799 0.159848 0.190547 -0.000000 -0.000000 0.000000
photogrammetry 15 16 NO 0.228571 0.228571 0.000000 -0.117118 -0.156403 -0.118602 0.000000 -0.000000 -0.000000
photogrammetry 16 17 NO 0.234488 0.234488 0.000000 -0.087780 -0.196051 -0.094039 0.000000 0.000000 0.000000
photogrammetry 17 18 NO 0.131152 0.131152 0.000000 -0.039972 -0.112903 -0.053441 -0.000000 -0.000000 0.000000
photogrammetry 18 19 NO 0.174234 0.174234 0.000000 -0.096048 0.144219 -0.018254 0.000000 0.000000 -0.000000
photogrammetry 19 20 NO 0.088564 0.088564 0.000000 -0.068126 -0.048860 -0.028552 0.000000 -0.000000 -0.000000
photogrammetry 20 21 NO 0.208362 0.208362 0.000000 -0.070474 0.145959 -0.130935 0.000000 0.000000 -0.000000
photogrammetry 21 22 NO 0.079826 0.079826 0.000000 -0.020598 0.039316 0.066349 -0.000000 -0.000000 0.000000
photogrammetry 22 23 NO 0.279016 0.279016 0.000000 -0.076998 0.257344 0.075465 0.000000 0.000000 -0.000000
photogrammetry 23 24 NO 0.073968 0.073968 0.000000 -0.008413 0.043360 0.059333 -0.000000 -0.000000 0.000000
photogrammetry 24 25 NO 0.401803 0.401803 0.000000 0.337647 0.110291 0.187819 -0.000000 -0.000000 0.000000
photogrammetry 25 26 NO 0.194686 0.194686 0.000000 -0.033762 0.042738 0.186913 -0.000000 -0.000000 0.000000
photogrammetry 26 27 NO 0.152697 0.152697 0.000000 0.067778 0.116125 0.072372 0.000000 0.000000 -0.000000
photogrammetry 27 28 NO 0.115295 0.115295 0.000000 0.036289 -0.027294 0.105976 -0.000000 0.000000 -0.000000
photogrammetry 28 29 NO 0.272520 0.272520 0.000000 -0.053203 0.262977 -0.047747 0.000000 0.000000 -0.000000
photogrammetry 29 30 NO 0.094745 0.094745 0.000000 -0.027888 0.011083 0.089867 0.000000 0.000000 -0.000000
photogrammetry 30 31 NO 0.197779 0.197779 0.000000 -0.027779 0.185251 0.063456 -0.000000 -0.000000 0.000000
photogrammetry 31 32 NO 0.253963 0.253963 0.000000 0.087075 0.186306 0.149014 -0.000000 -0.000000 -0.000000
photogrammetry 32 33 NO 0.189139 0.189139 0.000000 0.057109 -0.179580 0.016223 -0.000000 -0.000000 -0.000000
photogrammetry 33 34 NO 0.166906 0.166906 0.000000 0.045689 0.121330 -0.105115 0.000000 0.000000 0.000000
photogrammetry 34 35 NO 0.219871 0.219871 0.000000 0.062206 -0.031424 -0.208534 -0.000000 -0.000000 -0.000000
photogrammetry 35 36 NO 0.324345 0.324345 0.000000 -0.104388 -0.229406 0.204145 -0.000000 0.000000 0.000000
photogrammetry 36 37 NO 0.166764 0.166764 0.000000 -0.136458 -0.026712 -0.092066 -0.000000 -0.000000 0.000000
photogrammetry 37 38 NO 0.257893 0.257893 0.000000 -0.004918 -0.010968 -0.257613 -0.000000 -0.000000 -0.000000
photogrammetry 38 39 NO 0.350976 0.350976 0.000000 0.168989 -0.233084 0.200746 0.000000 0.000000 -0.000000
photogrammetry 39 40 NO 0.199855 0.199855 0.000000 0.044939 0.023889 0.193266 -0.000000 0.000000 -0.000000
photogrammetry 40 41 NO 0.187924 0.187924 0.000000 -0.168203 0.069640 -0.046617 0.000000 0.000000 0.000000
photogrammetry 41 42 NO 0.311604 0.311604 0.000000 0.058403 -0.238634 0.191677 0.000000 0.000000 -0.000000
photogrammetry 42 43 NO 0.187598 0.187598 0.000000 -0.066475 0.172390 -0.032491 0.000000 0.000000 -0.000000
photogrammetry 43 44 NO 0.231809 0.231809 0.000000 0.157871 -0.157990 0.062059 0.000000 -0.000000 0.000000
photogrammetry 44 45 NO 0.066803 0.066803 0.000000 -0.065639 -0.004845 -0.011431 -0.000000 0.000000 -0.000000
photogrammetry 45 46 NO 0.166012 0.166012 0.000000 0.134917 0.096669 0.003532 -0.000000 0.000000 -0.000000
photogrammetry 46 47 NO 0.267567 0.267567 0.000000 -0.006263 -0.218059 -0.154930 -0.000000 -0.000000 -0.000000
photogrammetry 47 48 NO 0.263504 0.263504 0.000000 0.099872 -0.079779 -0.230423 0.000000 0.000000 -0.000000
photogrammetry 48 49 NO 0.150579 0.150579 0.000000 -0.067437 0.095549 0.094851 0.000000 0.000000 -0.000000
photogrammetry 49 50 NO 0.254584 0.254584 0.000000 -0.012925 -0.123124 0.222456 -0.000000 -0.000000 0.000000
photogrammetry 50 51 NO 0.284076 0.284076 0.000000 -0.162992 0.231807 0.019951 0.000000 0.000000 -0.000000
photogrammetry 51 52 NO 0.220343 0.220343 0.000000 -0.001767 -0.151096 0.160368 -0.000000 -0.000000 0.000000
photogrammetry 52 53 NO 0.029701 0.029701 0.000000 0.005492 -0.023069 0.017884 -0.000000 -0.000000 0.000000
photogrammetry 53 54 NO 0.103080 0.103080 0.000000 0.034442 -0.066907 -0.070447 0.000000 0.000000 0.000000
photogrammetry 54 55 NO 0.146957 0.146957 0.000000 -0.049467 0.109094 0.085134 0.000000 0.000000 0.000000
photogrammetry 55 56 NO 0.158453 0.158453 0.000000 -0.073961 0.124383 -0.064545 0.000000 0.000000 0.000000
photogrammetry 56 57 NO 0.052434 0.052434 0.000000 0.043446 -0.000151 0.029356 0.000000 0.000000 -0.000000
photogrammetry 57 58 NO 0.073886 0.073886 0.000000 0.072830 -0.011479 0.004803 0.000000 0.000000 -0.000000
photogrammetry 58 59 NO 0.049058 0.049058 0.000000 0.020642 -0.026656 -0.035638 0.000000 0.000000 0.000000
photogrammetry 59 60 NO 0.049762 0.049762 0.000000 0.016593 0.020814 0.042044 0.000000 0.000000 -0.000000
photogrammetry 60 61 NO 0.155924 0.155924 0.000000 -0.094827 0.114112 -0.047944 0.000000 0.000000 -0.000000
photogrammetry 61 62 NO 0.282592 0.282592 0.000000 -0.097034 0.263395 -0.032652 -0.000000 -0.000000 0.000000
photogrammetry 62 63 NO 0.063448 0.063448 0.000000 0.003125 0.055444 -0.030691 -0.000000 -0.000000 -0.000000
photogrammetry 63 64 NO 0.185189 0.185189 0.000000 -0.021735 -0.178415 -0.044617 -0.000000 -0.000000 -0.000000
photogrammetry 64 65 NO 0.255452 0.255452 0.000000 -0.149960 0.145523 0.146938 0.000000 0.000000 -0.000000
photogrammetry 65 66 NO 0.294472 0.294472 0.000000 -0.110921 0.256436 -0.093008 -0.000000 -0.000000 -0.000000
photogrammetry 66 67 NO 0.239096 0.239096 0.000000 0.188251 -0.144667 -0.028284 -0.000000 0.000000 0.000000
photogrammetry 67 68 NO 0.219018 0.219018 0.000000 -0.092846 0.169979 -0.102253 0.000000 0.000000 0.000000
photogrammetry 68 69 NO 0.408491 0.408491 0.000000 0.329343 -0.171630 0.170121 -0.000000 0.000000 0.000000
photogrammetry 69 70 NO 0.168061 0.168061 0.000000 -0.045331 -0.123718 -0.104324 -0.000000 0.000000 -0.000000
photogrammetry 70 71 NO 0.236668 0.236668 0.000000 -0.189319 -0.141048 0.016595 0.000000 0.000000 -0.000000
photogrammetry 71 72 NO 0.080450 0.080450 0.000000 -0.013160 -0.048404 -0.062897 -0.000000 -0.000000 -0.000000
photogrammetry 72 73 NO 0.440136 0.440136 0.000000 0.186522 0.213061 -0.336948 -0.000000 -0.000000 -0.000000
photogrammetry 73 74 NO 0.239211 0.239211 0.000000 -0.068566 -0.056330 0.222143 -0.000000 0.000000 -0.000000
photogrammetry 74 75 NO 0.219513 0.219513 0.000000 -0.139882 0.168889 0.009771 0.000000 0.000000 0.000000
photogrammetry 75 76 NO 0.224222 0.224222 0.000000 0.140334 -0.169803 0.041818 -0.000000 0.000000 -0.000000
photogrammetry 76 77 NO 0.258522 0.258522 0.000000 0.116912 0.230265 -0.011981 -0.000000 -0.000000 -0.000000
photogrammetry 77 78 NO 0.144051 0.144051 0.000000 0.020570 0.092890 -0.108162 -0.000000 -0.000000 -0.000000

Analysis

Total points 78
Filtered points 0
Filtered ratio 0.0%
Kept points 78
All points max residual 0.440136
Kept points max residual 0.440136
Kept points mean residual 0.192926

Top 10 Residual Points

Rank Source Sample idx Sample ID Filtered Final residual
1 photogrammetry 72 73 NO 0.440136
2 photogrammetry 68 69 NO 0.408491
3 photogrammetry 24 25 NO 0.401803
4 photogrammetry 38 39 NO 0.350976
5 photogrammetry 35 36 NO 0.324345
6 photogrammetry 41 42 NO 0.311604
7 photogrammetry 65 66 NO 0.294472
8 photogrammetry 50 51 NO 0.284076
9 photogrammetry 61 62 NO 0.282592
10 photogrammetry 22 23 NO 0.279016
📖 How to interpret this tab
Metric How to understand Good sign Warning sign What to do
Effective FIM rank How many independent parameter directions are actually observed by your dataset. Rank close to total parameter count. Rank much smaller than parameter count. Add fundamentally different geometries; replacing duplicates is more useful than adding volume.
FIM eigenvalue spectrum Information strength per direction. Bottom tail reveals weak or unobservable combinations. Tail has no WEAK/DEFICIENT/NEGLIGIBLE zones. Long weak tail and many deficient directions. Use weakest-direction hints to build poses that separate listed parameter groups.
Weakest parameter directions Dominant parameters in poorly observed eigenvectors; not currently separable. No near-zero directions or only mild weak ones. Top weak directions are near zero. Create measurements where listed parameters respond with clearly different signatures.
Parameter uncertainty (from FIM inverse) Direct precision score per parameter after considering all couplings. No CRITICAL statuses. CRITICAL/HIGH statuses persist. Add targeted poses for those exact parameters before broad random additions.
Leverage uniformity Whether information is spread across samples or concentrated in a few influential points. Uniformity is moderate/high. Uniformity is low; only a few samples dominate. Replace low-value repetitive samples with novel poses in under-excited regions.
Per-sample leverage (HIGH/REDUNDANT) HIGH samples carry unique information. REDUNDANT samples are likely replaceable. Small controlled set of HIGH + very few REDUNDANT. Many REDUNDANT samples. Keep HIGH samples, replace REDUNDANT first when planning additional measurements.
Inseparable parameter groups Parameters moving together in null-space; current data cannot distinguish them. No CRITICAL groups. CRITICAL group exists. Plan pose families that flip sign/magnitude differently for group members.
Redundancy clusters Near-identical Jacobian signatures across samples; little new information. Few/no clusters with large replaceable tails. Many clusters and many replaceable IDs. Do substitution: remove cluster duplicates, add orthogonal poses instead.
Marginal information gain ordering Greedy ranking of sample usefulness (early = informative, late = weak). Information gain decays slowly. Long low-value tail appears early. Retain top-ranked samples and replace tail with designs guided by weak directions.
Diagnostic recommendations (P0..P3) Consolidated action plan generated from all metrics. No P0/P1 entries. P0/P1 entries remain. Treat table as execution order: close P0, re-run, then proceed to lower priorities.

Information-theoretic analysis of dataset quality beyond correlation

Information Budget

Error terms (rows) 468
Parameters (columns) 22
Measurement/param ratio 21.3
FIM condition number 2.70e+08
Effective FIM rank 17/22
Information utilization 77.3%
D-efficiency 1.5055e+04
A-optimality (trace FIM⁻¹) 9.8211e-01
E-optimality (min eigenvalue) 2.5119e+00

FIM Eigenvalue Spectrum

Eigenvalues of J^T*J sorted descending. Small values = information-starved directions.

# Eigenvalue Ratio to max Cumulative % Status
1 6.7749e+08 1.0000e+00 44.14% OK
2 6.1975e+08 9.1478e-01 84.52% OK
3 8.9830e+07 1.3259e-01 90.37% OK
... (6 OK eigenvalues omitted)
10 6.5443e+06 9.6596e-03 99.31% FAIR
11 3.2371e+06 4.7781e-03 99.52% FAIR
12 2.7666e+06 4.0837e-03 99.70% FAIR
13 2.5028e+06 3.6942e-03 99.87% FAIR
14 9.9957e+05 1.4754e-03 99.93% FAIR
15 8.9063e+05 1.3146e-03 99.99% FAIR
16 1.3233e+05 1.9532e-04 100.00% WEAK
17 3.4847e+04 5.1435e-05 100.00% WEAK
18 2.5701e+01 3.7935e-08 100.00% DEFICIENT
19 2.2277e+01 3.2881e-08 100.00% DEFICIENT
20 6.3161e+00 9.3229e-09 100.00% DEFICIENT
21 2.9253e+00 4.3179e-09 100.00% DEFICIENT
22 2.5119e+00 3.7077e-09 100.00% DEFICIENT

Weakest Parameter Directions

Bottom eigenvectors of FIM — parameter combinations with least information

Rank λ value λ/λ_max Dominant Parameters Weights Assessment
1 2.5119e+00 3.71e-09 link5/offset_z
link3/offset_x
link6/offset_z
link6/offset_x
+0.783
-0.556
+0.234
-0.148
DEFICIENT — severe information deficit, add targeted measurements
2 2.9253e+00 4.32e-09 link6/offset_z
link6/offset_x
link5/offset_z
link5/offset_x
-0.878
+0.369
+0.267
-0.111
DEFICIENT — severe information deficit, add targeted measurements
3 6.3161e+00 9.32e-09 link3/offset_x
link5/offset_z
-0.825
-0.558
DEFICIENT — severe information deficit, add targeted measurements
4 2.2277e+01 3.29e-08 link5/offset_x
link6/offset_x
link6/offset_z
+0.949
-0.222
-0.221
DEFICIENT — severe information deficit, add targeted measurements
5 2.5701e+01 3.79e-08 link6/offset_x
link6/offset_z
link5/offset_x
+0.887
+0.353
+0.291
DEFICIENT — severe information deficit, add targeted measurements

Parameter Uncertainty (from FIM inverse)

Diagonal of (J^T*J)^{-1} — variance of each parameter estimate

Parameter Variance Std Dev Relative Status
link1/offset_rx 1.3482e-07 3.6718e-04 0.0000 LOW
link1/offset_ry 1.4386e-07 3.7929e-04 0.0000 LOW
link1/offset_rz 1.6625e-05 4.0774e-03 0.0001 LOW
link2/offset_rx 6.0630e-07 7.7865e-04 0.0000 LOW
link2/offset_ry 2.2181e-05 4.7097e-03 0.0001 LOW
link2/offset_rz 4.1620e-07 6.4514e-04 0.0000 LOW
link3/offset_x 2.3414e-01 4.8388e-01 0.7365 HIGH
link3/offset_rx 1.1133e-06 1.0551e-03 0.0000 LOW
link3/offset_ry 6.4516e-07 8.0322e-04 0.0000 LOW
link3/offset_rz 3.9203e-07 6.2612e-04 0.0000 LOW
link4/offset_rx 1.1494e-06 1.0721e-03 0.0000 LOW
link4/offset_ry 5.6100e-07 7.4900e-04 0.0000 LOW
link4/offset_rz 1.6090e-07 4.0113e-04 0.0000 LOW
link5/offset_x 4.8534e-02 2.2031e-01 0.1527 MODERATE
link5/offset_z 3.1791e-01 5.6383e-01 1.0000 CRITICAL
link5/offset_ry 2.2916e-07 4.7871e-04 0.0000 LOW
link5/offset_rz 4.5620e-06 2.1359e-03 0.0000 LOW
link6/offset_x 8.9071e-02 2.9845e-01 0.2802 MODERATE
link6/offset_z 2.9239e-01 5.4073e-01 0.9197 CRITICAL
link6/offset_rx 1.6098e-06 1.2688e-03 0.0000 LOW
link6/offset_ry 1.0499e-05 3.2402e-03 0.0000 LOW
link6/offset_rz 9.9217e-07 9.9608e-04 0.0000 LOW

Sample Leverage Analysis

Hat matrix diagonal h_ii — measures influence of each error term

Total error terms 468
Expected leverage (p/M) 0.047009
Mean leverage 0.047009
Std leverage 0.053130
Min leverage 0.000000
Max leverage 0.219174
Coefficient of variation 1.130
Leverage uniformity 0.214
High-leverage terms (h > 0.0940) 92
Low-leverage terms (h < 0.0235) 234

Per-Sample Leverage

# Sample ID Leverage Verdict
1 53 0.136094 REDUNDANT
2 20 0.124825 REDUNDANT
(76 NORMAL samples omitted)

Inseparable Parameter Groups

Parameters linked in null-space — cannot be separated with current data

Group # Size Parameters Null dims Severity
1 5 link3/offset_x
link5/offset_z
link6/offset_z
link6/offset_x
link5/offset_x
5 CRITICAL

Redundancy Clusters

Groups of samples with cosine similarity ≥ 0.95 — near-identical information

Cluster # Size Avg similarity Keep (sample ID) Replaceable (sample IDs)
1 16 0.9456 1 4, 8, 10, 19, 20, 21, 23, 36, 43, 45, 52, 54, 56, 61, 71
2 11 0.9625 2 3, 6, 11, 39, 42, 53, 57, 62, 64, 78
3 8 0.9484 5 13, 14, 24, 26, 33, 50, 74
4 6 0.9635 9 12, 17, 25, 35, 47
5 6 0.9561 27 29, 55, 58, 59, 60
6 4 0.9511 37 38, 41, 68
7 3 0.9531 15 32, 77
8 3 0.9371 34 65, 67
9 2 0.9579 7 22
10 2 0.9609 18 30
11 2 0.9628 28 44
12 2 0.9555 31 72
13 2 0.9823 40 49
14 2 0.9666 48 69
15 2 0.9758 51 75

Marginal Information Gain Ordering

Greedy forward selection: each step picks the sample maximising log-det(FIM)

Step Sample ID log-det(FIM) Cum. rank
1 29 -5119.6778 3
2 46 -4315.9191 6
3 35 -2872.3530 9
4 3 -2093.7653 12
5 26 -660.3226 15
6 10 99.1942 17
... (67 samples omitted)
74 12 278.3068 17
75 1 278.4721 17
76 36 278.6238 17
77 53 278.7634 17
78 20 278.8910 17

Diagnostic Recommendations

Priority Metric Current Target Required Action Why
P0 Effective FIM rank 17/22 22/22 5 parameter direction(s) have negligible information — add fundamentally different measurement poses Rank-deficient FIM means some parameters (or combinations) cannot be determined at all
P0 Weak direction #1 λ/λ_max = 3.71e-09 λ/λ_max > 0.001 Add poses that vary [link5/offset_z + link3/offset_x + link6/offset_z] independently DEFICIENT — severe information deficit, add targeted measurements
P0 Weak direction #2 λ/λ_max = 4.32e-09 λ/λ_max > 0.001 Add poses that vary [link6/offset_z + link6/offset_x + link5/offset_z] independently DEFICIENT — severe information deficit, add targeted measurements
P0 Weak direction #3 λ/λ_max = 9.32e-09 λ/λ_max > 0.001 Add poses that vary [link3/offset_x + link5/offset_z] independently DEFICIENT — severe information deficit, add targeted measurements
P0 Weak direction #4 λ/λ_max = 3.29e-08 λ/λ_max > 0.001 Add poses that vary [link5/offset_x + link6/offset_x + link6/offset_z] independently DEFICIENT — severe information deficit, add targeted measurements
P0 Weak direction #5 λ/λ_max = 3.79e-08 λ/λ_max > 0.001 Add poses that vary [link6/offset_x + link6/offset_z + link5/offset_x] independently DEFICIENT — severe information deficit, add targeted measurements
P1 Coverage Az entropy=0.00, coverage=10%, gap=0.0deg entropy ≥ 0.70, coverage ≥ 60% Add samples near Az=0.0deg (largest gap = 0% of range) Clustered sampling leaves coverage holes that reduce parameter sensitivity
P1 Coverage El entropy=0.00, coverage=10%, gap=0.0deg entropy ≥ 0.70, coverage ≥ 60% Add samples near El=0.0deg (largest gap = 0% of range) Clustered sampling leaves coverage holes that reduce parameter sensitivity
P1 Coverage Roll entropy=0.00, coverage=10%, gap=0.0deg entropy ≥ 0.70, coverage ≥ 60% Add samples near Roll=0.0deg (largest gap = 0% of range) Clustered sampling leaves coverage holes that reduce parameter sensitivity
P2 Leverage uniformity 0.21 (CV=1.13) > 0.30 Replace redundant poses (low leverage) with novel configurations Non-uniform leverage means some measurements dominate while others are wasted
P0 Parameter uncertainty 2 CRITICAL parameters: link5/offset_z, link6/offset_z No CRITICAL parameters These parameters have extremely high variance — need dedicated excitation High FIM-inverse diagonal means the parameter value is poorly constrained by data
P0 Inseparable group (5 params) link3/offset_x, link5/offset_z, link6/offset_z, link6/offset_x... Each parameter independently identifiable Add measurements where these parameters produce DIFFERENT Jacobian signatures 5 null-space dimension(s) — these parameters move together in current data
P2 Redundancy clusters 8 cluster(s), 49 replaceable samples No clusters with ≥ 3 near-identical samples Replace redundant samples with novel pose configurations Near-identical Jacobian rows provide no additional information
P3 Marginal information tail Last 70 samples added < 1% of total information Each sample contributes meaningfully These samples could be replaced with data that fills coverage gaps Diminishing returns indicate saturation of current measurement geometry
Dataset Quality: WARNING
• Weak sign-configuration coverage (57/64 patterns missing)
• Low workspace cube coverage (29%)

Summary

Samples 78
Axes (DOF) 6
Duplicate ratio 0.0%
Unique poses 78 / 78
NN joint median 31.45 deg
NN joint p95 50.86 deg
Workspace cells 63 / 216
Workspace coverage 29.2%
NN workspace median 114.91 mm
A5 near-singularity 1.3%

Joint Axis Statistics (degrees)

Axis Min Max Span Std
A1 16.94 76.99 60.05 13.60
A2 -133.66 -58.67 74.99 14.71
A3 64.22 149.90 85.68 18.76
A4 -115.92 133.69 249.61 57.99
A5 -114.16 111.50 225.66 76.26
A6 -151.16 60.00 211.16 52.77

Axis Histogram Imbalance

Axis Min bin Max bin CV
A1 1 19 0.51
A2 1 29 0.84
A3 2 19 0.59
A4 3 17 0.50
A5 5 27 0.69
A6 4 14 0.32

Sign Configurations (Observed)

Pattern Count Share Status
+-+++- 5 6.4% OBSERVED
+-++-+ 10 12.8% OBSERVED
+-++-- 26 33.3% OBSERVED
+-+-++ 1 1.3% OBSERVED
+-+-+- 27 34.6% OBSERVED
+-+--+ 2 2.6% OBSERVED
+-+--- 7 9.0% OBSERVED

Wrist Pair Occupancy

Pair Occupied / Total Coverage Sparse (≤2)
A4 / A5 21 / 36 58.3% 10
A4 / A6 23 / 36 63.9% 7
A5 / A6 23 / 36 63.9% 9

Joint-Angle Correlations (sampling)

Pair Corr |Corr|
A5 / A6 -0.689 0.689
A4 / A5 -0.685 0.685
A2 / A3 -0.404 0.404
A4 / A6 0.384 0.384
A2 / A5 -0.283 0.283
A1 / A5 0.237 0.237
A2 / A6 0.195 0.195
A2 / A4 0.176 0.176
A3 / A5 -0.159 0.159
A3 / A4 -0.114 0.114

Correlation Matrix

A1 A2 A3 A4 A5 A6
A1 1.000 -0.005 -0.063 -0.003 0.237 -0.104
A2 -0.005 1.000 -0.404 0.176 -0.283 0.195
A3 -0.063 -0.404 1.000 -0.114 -0.159 -0.004
A4 -0.003 0.176 -0.114 1.000 -0.685 0.384
A5 0.237 -0.283 -0.159 -0.685 1.000 -0.689
A6 -0.104 0.195 -0.004 0.384 -0.689 1.000
Current correlation health score 74/100
Overall health 77/100 (B)

Which parameter, if frozen (removed from optimization), gives the biggest health improvement?

Single-Parameter Freeze Impact

Rank Parameter Corr Health If Frozen Change
1 link5/offset_rz 81 +7
2 link6/offset_ry 81 +7
3 link1/offset_rz 79 +5
4 link2/offset_ry 79 +5
5 link6/offset_z 76 +2
6 link6/offset_rx 76 +2
7 link3/offset_ry 75 +1
8 link6/offset_x 75 +1
9 link3/offset_x 74 +0
10 link4/offset_rx 74 +0
11 link5/offset_x 74 +0
12 link5/offset_z 74 +0
13 link2/offset_rx 73 -1
14 link2/offset_rz 73 -1
15 link3/offset_rz 73 -1
16 link5/offset_ry 73 -1
17 link6/offset_rz 73 -1
18 link1/offset_rx 72 -2
19 link1/offset_ry 72 -2
20 link3/offset_rx 72 -2
21 link4/offset_ry 72 -2
22 link4/offset_rz 72 -2

Greedy Freeze Sequence

Step Freeze Parameter Corr Health After Step Gain Total Gain Params Left
1 link5/offset_rz 81 +7 +7 21
2 link1/offset_rz 88 +7 +14 20
3 link3/offset_rz 90 +2 +16 19
4 link2/offset_rx 92 +2 +18 18
5 link1/offset_ry 93 +1 +19 17
[2026-05-05T16:47:58] Run ID: 20260505_164735_fb4832 [2026-05-05T16:47:58] Timestamp: 2026-05-05T16:47:58 [2026-05-05T16:47:58] Status: success [2026-05-05T16:47:58] Duration: 20.98s [2026-05-05T16:47:58] Iterations: 8 [2026-05-05T16:47:58] Final cost: 3.4846785488e+00 [2026-05-05T16:47:58] Stage configuration: Stage #1: photogrammetry_init (enabled) Data sources: photogrammetry Parameter link types: base, camera Error term: camera_pose (type=camera_pose, weight=1.000000, rotation=1.000000, touch=1.000000, optimize_centers=False) Total samples: 78 Stage #2: photogrammetry_full (enabled) Data sources: photogrammetry Parameter link types: link1, link2, link3, link4, link5, link6 Error term: camera_pose (type=camera_pose, weight=1.000000, rotation=1.000000, touch=1.000000, optimize_centers=False) Total samples: 78 [2026-05-05T16:47:58] Stage execution summary: Stage: photogrammetry_init Iterations: 4, final_cost: 2.1029613906e+01 Cost reduction: — Converged: True (Converged: cost change below tolerance) Optimized params: 12 Data sources: 1, samples: 78 Elapsed: 8.79s Stage: photogrammetry_full Iterations: 4, final_cost: 3.4846785488e+00 Cost reduction: — Converged: True (Converged: cost change below tolerance) Optimized params: 22 Data sources: 1, samples: 78 Elapsed: 10.92s [2026-05-05T16:47:58] Pose error improvement by stage (camera_pose): Stage: photogrammetry_init Position mean: 107.757802 -> 0.478247 (+99.56%) Position std : 47.775076 -> 0.202213 (+99.58%) Position max : 215.457560 -> 1.131757 (+99.47%) Orientation: N/A (no informative RPY measurements for this stage) Stage: photogrammetry_full Position mean: 0.478247 -> 0.192926 (+59.66%) Position std : 0.202213 -> 0.086343 (+57.30%) Position max : 1.131757 -> 0.440136 (+61.11%) Orientation: N/A (no informative RPY measurements for this stage) Rotation weight: 0.000000 [2026-05-05T16:47:58] Parameter changes: link1/offset_x: 0.00000000 → 0.00000000 (Δ=+0.00000000) link1/offset_y: 0.00000000 → 0.00000000 (Δ=+0.00000000) link1/offset_z: 0.00000000 → 0.00000000 (Δ=+0.00000000) link1/offset_rx: 0.00000000 → 0.01669853 (Δ=+0.01669853) link1/offset_ry: 0.00000000 → -0.02188579 (Δ=-0.02188579) link1/offset_rz: 0.00000000 → -0.03129690 (Δ=-0.03129690) link2/offset_x: 0.00000000 → 0.00000000 (Δ=+0.00000000) link2/offset_y: 0.00000000 → 0.00000000 (Δ=+0.00000000) link2/offset_z: 0.00000000 → 0.00000000 (Δ=+0.00000000) link2/offset_rx: 0.00000000 → -0.01157515 (Δ=-0.01157515) link2/offset_ry: 0.00000000 → -0.03141320 (Δ=-0.03141320) link2/offset_rz: 0.00000000 → 0.00511982 (Δ=+0.00511982) link3/offset_x: 0.00000000 → 0.01364120 (Δ=+0.01364120) link3/offset_y: 0.00000000 → 0.00000000 (Δ=+0.00000000) link3/offset_z: 0.00000000 → 0.00000000 (Δ=+0.00000000) link3/offset_rx: 0.00000000 → 0.01070026 (Δ=+0.01070026) link3/offset_ry: 0.00000000 → 0.01798839 (Δ=+0.01798839) link3/offset_rz: 0.00000000 → 0.03285708 (Δ=+0.03285708) link4/offset_x: 0.00000000 → 0.00000000 (Δ=+0.00000000) link4/offset_y: 0.00000000 → 0.00000000 (Δ=+0.00000000) link4/offset_z: 0.00000000 → 0.00000000 (Δ=+0.00000000) link4/offset_rx: 0.00000000 → 0.00150677 (Δ=+0.00150677) link4/offset_ry: 0.00000000 → 0.00972680 (Δ=+0.00972680) link4/offset_rz: 0.00000000 → -0.04165995 (Δ=-0.04165995) link5/offset_x: 0.00000000 → 0.04480781 (Δ=+0.04480781) link5/offset_y: 0.00000000 → 0.00000000 (Δ=+0.00000000) link5/offset_z: 0.00000000 → 0.39340333 (Δ=+0.39340333) link5/offset_rx: 0.00000000 → 0.00000000 (Δ=+0.00000000) link5/offset_ry: 0.00000000 → 0.00010106 (Δ=+0.00010106) link5/offset_rz: 0.00000000 → -0.04569140 (Δ=-0.04569140) link6/offset_x: 0.00000000 → -0.53301134 (Δ=-0.53301134) link6/offset_y: 0.00000000 → 0.00000000 (Δ=+0.00000000) link6/offset_z: 0.00000000 → 0.02999485 (Δ=+0.02999485) link6/offset_rx: 0.00000000 → -0.07284822 (Δ=-0.07284822) link6/offset_ry: 0.00000000 → -0.10637707 (Δ=-0.10637707) link6/offset_rz: 0.00000000 → -0.03105290 (Δ=-0.03105290) base/x: -4347.13995974 → -4860.26533672 (Δ=-513.12537698) base/y: 34.72651344 → -65.69470448 (Δ=-100.42121792) base/z: -1366.37595269 → -1296.82912229 (Δ=+69.54683040) base/rx: 2.78825079 → 0.75853597 (Δ=-2.02971482) base/ry: -3.44856180 → 0.83465768 (Δ=+4.28321948) base/rz: 5.70954890 → 3.82233297 (Δ=-1.88721594) camera/x: -92.13383677 → 253.39157543 (Δ=+345.52541219) camera/y: -0.32489083 → 3.89607563 (Δ=+4.22096645) camera/z: 158.96389818 → 417.83763200 (Δ=+258.87373382) camera/rx: -149.64923032 → -149.64923032 (Δ=+0.00000000) camera/ry: -45.50998792 → -45.50998792 (Δ=-0.00000000) camera/rz: 15.06683992 → 15.06683992 (Δ=-0.00000000)

Ready to close
the accuracy gap?