DROID calibration repair: what corrected extrinsics can actually fix

A corrected camera extrinsic changes one geometric relationship: where a camera sits relative to another frame. It does not rewrite the images, repair timestamps, or improve every policy trained on the dataset. For a DROID user, the practical question is narrower: did a derived artifact use the old transform, and can the replacement transform be matched to the same camera and recording without changing its meaning?

The source record has a material wrinkle. The DROID project’s April 2025 update says improved calibrations were released for 36,000 episodes. Appendix G calls the corresponding coverage about 36,000 unique scenes, although the same paper describes a corpus with 564 distinct scenes. This is an internal terminology contradiction as well as a mismatch with the project page. The public evidence does not establish a consistent counting unit; the appendix number should not be treated as a verified count of distinct physical scenes.

This analysis uses DROID paper version 2, revised April 22, 2025, plus the public DROID code pinned at commit 33ae6a6. I did not run a calibration pipeline, reconstruct a scene, train a policy, or test a robot.

The release describes three different calibration products

Appendix G does not present one universal replacement matrix. It describes three sets with different frames, coverage, and quality evidence.

Calibration set Relationship represented Camera coverage described in Appendix G What it can support
Camera to robot base One external camera relative to the robot’s kinematic base At least one external camera anchored to the base Robot overlays, camera-frame to base-frame geometry, and spatial labels tied to the robot
Camera to camera Relative pose between the two external cameras Both external views related to each other Multi-view alignment and fusion between the external views
Curated mixed superset Both external cameras relative to the base, assembled from three methods Both external views anchored to the base Work that needs both external views grounded in the robot-base frame

The Appendix G introduction explains the frame distinction. Camera-to-base calibration grounds a fixed camera in the robot base. Camera-to-camera calibration estimates relative orientation and translation between the two external cameras. A relative camera pair does not, by itself, place either camera in the robot base frame.

The current release path is also a practical limit. The project update links to KarlP/droid, but on September 27, 2026, the dataset API exposed only .gitattributes and a 30-byte license README, with no calibration payload, header, join key, filename, or checksum available for inspection. The paper explains the products, but that landing page does not currently provide enough material for a reproducible application command. Treat the procedure below as an interpretation and validation plan, not as a tested installer.

Quality scores are filters, not interchangeable guarantees

The first camera-to-base route evaluates existing extrinsics by projecting robot geometry into the image. The G-A method compares a Segment Anything mask with a robot silhouette rendered from the robot’s URDF description through the candidate calibration. It retains masks with confidence above 0.65, averages intersection-over-union (IoU) across five equally sampled frames, and uses IoU of at least 0.7 to identify high-quality projections. These are the authors’ filtering settings, not a guarantee for every retained calibration.

The second camera-to-base route uses a tuned CtRNet-X model. The G-B method rejects low-confidence detections, applies median absolute deviation filtering to reprojection errors, and selects scenes whose mean reprojection error is 20 or less. The inspected paragraph does not state a unit for that threshold, so 20 should remain a paper-specific filter value rather than becoming a general pixel budget.

Camera-to-camera calibration uses a modified DUSt3R pipeline with known intrinsics and depth to refine pose at metric scale. Its quality proxy is the number of reciprocal 3D matches. The authors report that more matches correlate visually with better geometry, but also report false positives in clutter. Pose refinement uses the first frame of each video, and the limitations include clutter, poor lighting, and views with little overlap.

One threshold detail is easy to flatten incorrectly. The paper’s final mixed superset uses IoU 0.6, reprojection error 20, and the top 30% by match count for its three stages. That 0.6 value is distinct from the G-A screen of IoU at least 0.7. A calibration record therefore needs its method and quality field, not just a matrix.

Applying a matrix requires an explicit frame contract

The DROID code illustrates why a six-number extrinsic is not self-describing. The pinned metadata schema says third-person extrinsics assume the left stereo camera, orders ext1 and ext2 by serial number, and stores [position; rotation], with rotation produced by SciPy’s as_euler("xyz").

A pinned policy wrapper reconstructs a matrix with an XYZ convention and then inverts it to obtain world-to-camera extrinsics. Code inspection alone does not prove that every producer, file, and consumer uses equivalent Euler semantics or the same transform direction. It shows the checks an adapter must make.

The paper’s notation also calls for care: its prose names a camera-to-base transform, while the G-A projection equation places that same symbol between the camera intrinsics and forward-kinematics keypoints. Without the released payload and its consumer, that display is not enough to settle which direction should be supplied to an adapter.

Before replacing a value, require the payload’s documented recording-to-camera mapping; do not infer a join key from the disputed word “scene.” Confirm the camera serial, state whether the transform maps camera to base or base to camera, name the stereo side, and record the Euler or matrix convention. Then test the declared mapping and its inverse with a known geometric correspondence. A robot silhouette that overlays the image and a dual-camera point cloud that aligns are useful geometric checks; neither proves timing, depth accuracy, or semantic-label quality.

Rebuild only the artifacts that depended on the old extrinsic

The following dependency decisions are an editorial procedure derived from the geometry. They are not commands supplied by DROID.

Artifact or model input Effect of an extrinsic correction
Raw RGB, depth samples, robot state, actions, timestamps, and language The correction does not change these recorded values. It cannot repair an error in any of them.
Point clouds expressed in a shared frame Regenerate or revalidate them if the old extrinsic was used for deprojection or transformation.
Multi-view fusion, camera-to-base object poses, robot overlays, occupancy maps, and projection caches Rebuild the affected products and preserve the calibration method and quality field with the new result.
2D labels drawn directly in image space No automatic change unless they were generated from 3D geometry through the old transform. The vision augmentation and action-label guide covers the broader label-consistency boundary.
3D labels, viewpoint-normalized features, or spatial targets Treat them as tied to the old calibration revision and regenerate before comparing models.
Trained checkpoints Retraining is conditional. A model that consumed old geometry-derived inputs or targets is tied to that preprocessing revision. A model that consumed only raw RGB and proprioception is not automatically invalidated by a new extrinsic.

That last distinction matters for the DROID paper’s own policy results. Its reported diffusion-policy setup uses the two external RGB streams and robot proprioception as inputs. The paper does not claim that the calibration update revises those historical scores. A separate pipeline that turns DROID depth and poses into 3D supervision has a different dependency graph and should be evaluated again after regeneration.

A useful repair gate is small and DROID-specific

Do not begin by overwriting the original metadata. First require an identifiable calibration payload and a documented mapping from its rows to the affected DROID recordings and cameras. The currently linked Hugging Face landing does not satisfy that requirement, so an executable migration should wait for a verifiable payload or an author-supplied mapping.

When that material is available, keep the original and corrected values side by side. Attach the calibration family, quality method, threshold, source revision, camera serial, stereo side, and transform direction. Compare old and new geometry on a small set that includes clutter and low-overlap views, since those are named failure conditions in the paper. Rebuild only products that actually consumed the old transform, then rerun the evaluation that matters for the intended use.

The general mechanics of dependency records, immutable inputs, and rollback belong in the robot dataset versioning and lineage guide. The DROID-specific lesson is more concrete: a corrected extrinsic can improve a particular geometric edge, provided the matrix is matched to the right camera and frame and passes a use-relevant check. It is not evidence that the rest of the episode, every derived artifact, or every trained policy has been repaired.