System Architecture
End-to-end pipeline
Calibrated RGB camera
→ newest-frame capture queue
→ select frames at approximately 2 Hz during slow motion
→ assemble overlapping DA3 window
→ relative depth + confidence + w2c poses + intrinsics
→ confidence-filtered local colored cloud
→ align shared frames to the global map with Sim(3)
→ append only new-frame geometry
→ bound, display, log, and exportThe system uses direct point-cloud accumulation. DA3 supplies coherent geometry and camera poses inside a window; Window Alignment and Mapping joins independent window coordinate frames.
flowchart LR Camera["Calibrated RGB camera"] --> Capture["Capture and smooth preview"] Capture --> Queue["Newest-frame queue<br/>bounded"] Queue --> Select["Slow frame selection<br/>approximately 2 Hz"] Select --> Assemble["Overlapping DA3 window"] Assemble --> Pending["Pending-window queue<br/>maximum one"] Pending --> Infer["DA3 Small inference<br/>one active window"] Infer --> Validate["Output validation and<br/>confidence filtering"] Validate --> Align["Shared-frame Sim(3)<br/>alignment gates"] Align -->|accepted| Commit["Atomic map commit<br/>new-frame geometry only"] Align -->|rejected| Preserve["Preserve last accepted<br/>map and overlap"] Commit --> Bound["Consolidate and enforce<br/>30-window / 1M-point bounds"] Bound --> Viewer["Independent live viewer"] Bound --> Artifacts["PLY, trajectory,<br/>telemetry, and logs"]
The diagram emphasizes the two bounded queues, the single active inference, and the acceptance boundary. A rejection follows the preserve-state path and never reaches the map commit.
Window state
The primary configuration uses:
window A = [f0, f1, f2, f3]
window B = [f2, f3, f4, f5]The accepted overlap [f2, f3] persists into the next inference. The 3-frame fallback retains its final two frames and advances by one new frame.
Track these states:
- Candidate: selected frame not yet committed to a window
- Pending: complete window waiting for inference
- Predicted: DA3 outputs passed structural validation
- Aligned: window passed every Sim(3) gate
- Committed: non-overlap points and poses were added to the global map
- Rejected: inference or alignment failed; no global state changed
Acceptance transaction
A new window is committed atomically:
- Validate every DA3 output.
- Build confidence-filtered points.
- Estimate and validate the global Sim(3).
- Transform new points and camera poses.
- Append non-overlap geometry.
- Advance the accepted overlap.
- Apply map bounds.
- publish one viewer snapshot and log record.
If any step before commit fails, retain the last accepted overlap and global map. A rejected window adds neither geometry nor camera poses.
Runtime stages and queues
- Capture: maintain a responsive preview and timestamp frames.
- Selection: sample candidates at approximately 2 Hz.
- Window assembly: preserve accepted overlap and choose the newest required non-overlap frames.
- Inference: run one DA3 window at a time.
- Alignment: register the predicted window to global state.
- Mapping: commit accepted new-frame geometry and enforce bounds.
- Display/export: update after each accepted window without blocking capture.
Only one inference may be active. Bound the pending work to one not-yet-started window. Before inference begins, stale non-overlap candidates may be replaced by newer frames; accepted overlap frames may not be replaced.
Core data records
Selected frame
- Unique frame identifier
- Capture timestamp
- Undistorted RGB image or durable file reference
- Camera-calibration identifier
- Selection order
Window prediction
- Window identifier and ordered frame identifiers
- Overlap and new-frame membership
- Locked inference configuration
- Processed RGB
- Relative depth and confidence
- Intrinsics and world-to-camera extrinsics
- Inference status, latency, and peak memory
Alignment result
- Source and target window identifiers
- Shared frame identifiers
- Correspondence and inlier counts
- Inlier ratio and median residual
- Sim(3) scale, rotation, and translation
- Accepted status or rejection reason
Global map state
- Accepted-window count
- Accumulated colored point cloud
- Global camera trajectory
- Accepted overlap-frame geometry
- Internal-to-metric scale, when available
- Consolidation and point-cap events
Failure behavior
- Capture failure: log and wait for a new frame.
- Invalid DA3 output: reject the window and keep the accepted overlap.
- Out-of-memory failure: stop inference, record the failure, and apply the fallback decision in Jetson Platform and Feasibility.
- Alignment rejection: discard the predicted window and wait for replacement new frames.
- Viewer failure: continue mapping if possible and log the display failure.
- Export failure: preserve in-memory state and report the failed artifact.
Runtime artifacts
Each run creates a unique results directory containing:
- Frozen configuration and software versions
- Camera-calibration identifier
- Selected frame identifiers and timestamps
- Window membership and overlap identifiers
- Retained diagnostic DA3 outputs
- Inference status, latency, and peak memory
- Sim(3) status and quality metrics
- Accepted and rejected window counts
- Queue and per-stage timings
tegrastatstelemetry- Raw relative and optional metric-scaled trajectories
- Raw relative and optional metric-scaled PLY clouds
- Map-bound events
- Summary metrics and annotated screenshots