RoboCap unit under test · A-package fitted parameters

Intrinsic and extrinsic drift across four durability tests

Thermal, nominal 1.6 m drop, wear-cycle and continuous-wear series: 51 calibration runs from 35 recording pairs on one RoboCap unit. The parameter views report each run’s A-package fit, with drift measured against its series baseline.

51 calibrations Cross-camera p95 45 / 51 runs ≤ 5.00 px Model kb4_tangential 1920×1080 Extrinsic anchor imu_left or left Translation mm · Rotation °
01

3D rig

Pose evolution of six cameras and two IMUs

Playback of the fitted poses of six cameras and two IMUs. Choose imu_left or the left camera as the fixed origin. Motion between measured groups is interpolated. Each camera shows its optical axis, a light orientation marker and a frustum drawn with its calibrated edge field of view (about 153° × 93°; the real lens is a fisheye, so the true image boundary is curved). The shell locates the measured rig extent; the optional cap is a schematic aid. At true scale, changes are millimetres and small rotations. The exaggeration settings amplify translation and rotation separately about their series means. At 10%, the largest position deviation is about one tenth of the rig span (15 mm). The shell retains its measured extent, so amplified markers may cross it. The viewer opens at true scale. Choose the experiment from the list beside the canvas (above it on narrow screens).

02

Thermal imagery

Infrared: 24.5 °C to 54.2 °C

Seventeen infrared photographs show centre temperatures from 24.5 to 53.5 °C and a maximum hot-spot reading of 54.2 °C. The first four photographs read 24.5, 30.7, 31.4 and 35.3 °C at the centre. Photographs associated with stages 2–5 read 41.3–53.5 °C; the last photograph reads 43.2 °C centre and 43.6 °C maximum. Image timestamps are read from the photographs. Stage 3 is tagged “47” and its photographs read 41.3–44.2 °C at the centre; stage 5 is tagged “50” and includes the 54.2 °C maximum.

Across stages 2–5, the five non-reference rotation magnitudes peak at 0.45–0.62° and the six fx values peak 0.44–1.03 px above stage 1. In the final stage, rotation is 0.14–0.28° and fx is +0.03 to +0.38 px. Its associated surface reading is 43.2 °C, within the range of the stage-3 centre readings.

Thermal stages: surface readings and fitted drift

03

Results overview

Measured parameter changes across four test series

Cross-camera reprojection p95. With each run’s A calibration frozen, 45 of 51 unique runs have worst-pair p95 ≤ 5.00 px (48 of the 54 series-table rows). Their values range from 2.3289 to 3.7532 px. The six exceptions are drops 70, 80 and 90 in both A/B directions, with worst-pair p95 of 6.18–14.44 px. At 100 drops the forward run is 2.77 px. Section 09 lists each result and the measured acceptance failures; section 05 gives the drift context.

Drop: rotation magnitudes of all five non-reference cameras trend upward with drop count (forward Spearman ρ 0.87–0.99; the reversed fits show the same broad trend). At 100 drops, left_front↔right_front relative orientation has changed by 2.29°. The right camera position change reaches 0.98 mm. Wear: the wear-cycle series peaks at 30–50 cycles and continuous wear at nominal hour 7; both fall back by their endpoints. Thermal: peak rotation is 0.45–0.62° and fx rises by up to 1.03 px before falling back. Intrinsics: the largest fx range is 1.02843 px (about 0.16%); the other three forward series are below 0.705 px. Forward/reverse fx differences reach 0.53 px on the same recording pairs. The largest principal-point range is 1.39913 px (right_eye cy, about 0.13% of image height).

Drop 100× · rotation
1.345°
left_front, as 1.25° roll about the axis plus 0.50° tilt; ≈6 px at centre, 10–23 px at edges
Drop 100× · between cameras
2.29°
left_front↔right_front relative rotation, series maximum
Drop 100× · translation
0.98 mm
right, rising with drops (ρ = 0.95, both directions)
Thermal · peak rotation
0.62°
left_eye; 0.23° in the final group, which still reads 43 °C
Continuous wear, hour 7
0.92–1.03°
Five similar rotation increments; pairwise orientation change ≤0.167°
Intrinsic fx range
≤1.03 px
Thermal series; <0.705 px in the other three
04

Drift curves

Shape of rotation, translation and focal length

Rotation and translation panels show magnitudes of change from each series’ first group. The fx panel shows absolute focal length for all six cameras. Magnitudes are nonnegative and noise also produces a positive value. The drop rotation trend is upward with local dips; the wear series peak and fall back. The right camera has the clearest drop translation trend in both fits. Thermal fx rises then falls; during the drop series 55 of 60 non-baseline fx differences are negative, as shown in the per-group values.

Extrinsic rotation (°)

Extrinsic translation (mm)

Focal length fx, absolute (px)

05

Per group · drop 1.6 m

Drop series, 0 to 100 drops

Zero reuses the final thermal calibration, whose A recording began 57 minutes before the first drop recording. The associated infrared photograph reads 43.2 °C. All five rotation magnitudes trend upward with count (forward ρ 0.87–0.99). At 100 drops the front cameras reach 1.345° and 1.120° relative to left, including about 1.25° of roll for left_front; left_front has local dips at 20, 30, 70 and 90. The right camera position reaches 0.983 mm (ρ about 0.95 in both directions). At 70–90 drops, the largest difference between an A edge and its B-observation estimate is 0.415–1.082° in the forward runs. At 100 drops the between-camera drift is largest, while the pair check passes 14/14. Within-group agreement and drift from the series baseline are reported separately.

Common and relative rotation. All six camera rotation increments are expressed in the imu_left frame before taking their mean. The residual angle is the departure from that mean rotation.

Drop series: rotation increments in the imu_left frame
DropsCommon (°)Largest residual (°)Residual / common
500.17580.54153.08
700.16530.84895.13
1000.45841.35672.96
06

Per group · thermal

Thermal series, nominal 24.5 to 50 °C, final group read at 43 °C

Across stages 2–5 the five non-reference rotation magnitudes peak at 0.45–0.62° and the six fx values peak 0.44–1.03 px above stage 1. The final stage falls to 0.14–0.28°, with fx +0.03 to +0.38 px. Its associated photograph reads 43.2 °C centre; the stage-3 photographs read 41.3–44.2 °C. Section 02 lists the surface readings.

07

Per group · wear cycles

Wear-cycle series, 0 to 100 cycles

The two peaks for the right camera fall in different groups: rotation reaches 1.383° at 50 cycles, translation 2.437 mm at 30 cycles; by 100 cycles they are back to 0.399° and 0.340 mm. Peaks mid-series and a fall at the end — a different shape from the drop series' steady rise.

Endpoint values. At 100 cycles the five non-reference rotations are 0.118–0.399° (about 1.3–4.4 px) and translations are 0.095–0.391 mm, each below its own series mean and mid-series peak. Δ is zero at the first group by definition.

Camera positions and relative rotation. Mean displacements of right / right_eye / right_front are 0.767 / 0.633 / 0.548 mm, versus 0.210 / 0.264 mm for left_eye / left_front. The right trio are about 150 mm from left, versus 78 / 95 mm for left_eye / left_front. The right↔left_front relative rotation changes by 0.546° at 30 cycles, and right↔left_eye by 0.993° at 50 cycles.

Fitted intrinsic changes. fx ranges are 0.176–0.338 px, the narrowest of the four forward series. The median forward/reverse fx difference across the paired thermal and drop runs is about 0.11 px.

08

Per group · continuous wear

Continuous-wear series, hours 0 to 8

Zero is the final group of the wear-cycle series (100 cycles, recorded 80 minutes before hour 1). The five non-reference rotations peak together in hour 7 at 0.917–1.033° (about 10.2–11.5 px) and fall back to 0.303–0.428° by hour 8. Translation peaks in hour 7 for right, right_eye and right_front, and in hour 5 for left_eye and left_front.

Peak in hour 7, back down by hour 8. All five non-reference rotations reach their series maximum in hour 7 (0.917–1.033°) and drop to 0.303–0.428° in hour 8, less than half the peak. Hours 3 and 6 are also troughs (0.19–0.38°), so the series fluctuates rather than accumulates; hour 8 still sits 0.3–0.4° from the wear-cycle endpoint.

Rotation and displacement at hour 7. Each of the five non-reference cameras turns by 0.92–1.03° relative to the baseline, while the largest change between any two of their relative orientations is 0.167°. Left changes by about 0.03° relative to imu_left. Mean displacement from left is 0.929 / 0.665 / 0.599 mm for right / right_eye / right_front and 0.193 / 0.239 mm for left_eye / left_front.

Recording timeline. Hours 1–8 are the test labels. The A-recording starts span about 8.40 hours from the hour-0 baseline.

09

B-package

Reprojection error with the A parameters frozen

The parameter sections report each run’s A fit. The B recording keeps A intrinsics, distortion, sensor extrinsics, timing and target geometry fixed. Its full-rig residuals refit the B trajectory and nuisance states. The six monocular columns below instead use a pose refitted per frame from that camera’s own sampled corners; they assess local reprojection consistency and do not directly test cross-camera extrinsics. Pair residuals transfer those poses through the frozen A chain. Loop closure uses pair transforms re-estimated on B observations with the same frozen camera and target model. Limits are monocular median 0.75 px for main, 0.70 for eye, 0.60 for front; monocular p95 2.00 px; pair median 1.70 px and p95 5.00 px in both directions; loop translation 1.65 mm and rotation 0.20°. Pass means all measured criteria are within their limits.

What a pair is. Six cameras form 15 unordered pairs. Left and right have zero co-visible observations in these recordings, so that edge is not applicable and 14 edges are evaluated. Each edge samples at most 25 co-visible time bins; 23–25 yield qualifying per-camera PnP poses. Only shared corners from those successful bins enter the median and p95, in both directions. Each statistic is computed for one edge and direction before taking the worst value for the run. The pose count is a sample count, not a measure of independent pose diversity. The package’s pair_sampling.csv records the included and excluded samples. The Pairs passing column counts the pairs, out of 14, that meet both limits in both directions.

On the count. The headline cards count 51 unique run identities from 35 different recording pairs. Sixteen pairs appear in both A/B directions. The series table has 54 rows because three calibrations are reused as baselines: the final thermal forward and reversed runs also anchor the two drop series, and wear-cycle 100 also anchors continuous-wear hour 0. Those repeated rows are not additional runs. Pair p95 passes in 45/51 runs (48/54 rows); all measured checks pass in 38/51 runs (41/54 rows).

Per-group results by series

The six monocular columns switch between median and p95. The median limit varies by camera (0.75 px main, 0.70 eye, 0.60 front); the p95 limit is a flat 2.0 px — and since the worst monocular p95 across all 54 groups is 1.841 px, no cell is flagged in p95 mode. The Pair p95 column carries a 5.00 px limit, exceeded only by drops 70/80/90 (6 groups counting both directions).

Angle converted to pixels. At fx ≈ 638, one degree of pitch or yaw moves the image centre by about 11.1 px; roll about the optical axis barely moves the centre and grows towards the edges. Of the 1.345° left_front drifts over 100 drops, 1.25° is roll: projected through that camera's intrinsics it moves the image centre about 6 px, edge midpoints 10–23 px and corners 23–26 px. This is drift against the series baseline; the monocular B residual (0.4–0.5 px) tests intrinsics only and does not see extrinsic change of this kind.

Drift and B-package failures are different quantities. Pair reprojection measures transfer of a run’s A calibration to its B observations. Loop closure tests the consistency of the re-estimated B edges; pose coverage and local reprojection assess other aspects of the recordings. These checks do not compare with the series baseline. At 100 drops, left_front↔right_front drift is 2.29° and the pair check still passes 14/14. Pair failures occur at 70, 80 and 90 drops in both directions. For the forward runs, the largest A-edge versus B-edge differences are 1.082°, 0.415° and 0.659°.

The remaining measured failures. All 51 runs meet their global monocular median limits and close 16/16 measured loops. Worst loop rotation is 0.1477° and translation 1.5138 mm. In the drop series loop rotation has Spearman ρ −0.16 forward and +0.35 reversed. Seven unique runs fail the front near-distance band: nominal thermal stages 49 and 50, drops 60, and continuous-wear hours 2–5. Left_front fails this band in seven runs and right_front in four, with no overlap between these seven runs and the six pair-failure runs. For continuous-wear hours 2–5, front near-band medians are 0.613–0.639 px, versus 0.568–0.595 px for the other five rows. Across the 54 displayed rows, B near-band medians exceed A in 219/324 camera comparisons, with median difference +0.0525 px overall and +0.0765 px for front. This count includes repeated baselines and correlated cameras. The reversed thermal 49/50 runs pass.

10

Both directions

Forward and reversed fits: magnitude agreement and remaining differences

Thermal and drop recording pairs were each fitted in both A/B directions. At the drop endpoint, left_front rotation magnitudes are 1.345° and 1.271°. At 0–60 and 100 drops, the five cameras’ magnitude differences are below 0.10°; this compares angle sizes rather than full orientations. For example, left_eye at 40 drops differs by 0.050° in magnitude but 0.163° between full rotation increments. At 70–90 drops the largest per-group magnitude differences are 0.22–0.71°. Thermal magnitude differences reach about 0.169°.

Drop endpoint (100 drops)

Thermal endpoint (final group)

≈px converts the total rotation to a pitch/yaw displacement at the image centre (1° ≈ 11.1 px) and does not apply to roll. Of left_front's 1.345°, 1.25° is roll: through that camera's intrinsics it moves the image centre by about 6 px, edge midpoints by 10–23 px and corners by 23–26 px, so the 15.0 px in the table lies between the centre and edge values.

Intrinsic range, forward vs reversed

Intrinsic range (px) and k1 range
11

Method

Four notes on reading these numbers

Parameter source. Each group uses its A-package parameter export. Intrinsics are ordered fx, fy, cx, cy, k1…k4, p1, p2.

How position is computed. T_C_C0 maps coordinates from the reference camera left into camera C, so its t column is the left origin expressed in C — not the camera's position. The x/y/z columns here are the translation of inv(T_C_C0), the camera origin's true position in the left frame, and Δ is the change in that position. Differencing the raw t column instead folds the rotation about the lever arm into translation: left_front sits about 95 mm from left and right_front about 149 mm, so 1.4° of rotation about an axis perpendicular to the lever arm sweeps their endpoints through 2.3 and 3.6 mm. Conversely, even with camera origins, any turn of left itself is magnified at the far cameras when left is the origin; allow for lever arm when comparing left and right.

Delta baseline. Δ columns are differences against each series' first group, not against a factory calibration. Rotation Δ is decomposed into Euler increments about x / y / z, with the magnitude taken as the rotation-vector norm; translation Δ is the norm of the position change. Both are never negative, so pure noise also reads as positive. ≈px converts angle to pitch/yaw displacement at the image centre via fx (1° ≈ 11.1 px) and does not apply to roll about the optical axis. The wear-cycle and continuous-wear series use the same unit that had already completed 100 drops.

Effective vertical frame readout. ro, in milliseconds, is the fitted time across the full image height. The model adds ro × (v / height − 0.5) to the frame time. Approximately 30 ms across 1080 rows corresponds to about 28 µs per row. Negative eye-camera values express the fitted direction convention.