SCOPE

On-orbit satellite camera calibration

FOUND and SCOPE

  • FOUND is HuskySat-2's optical navigation software
  • It determines the satellite's position relative to Earth based on a picture of the Earth's horizon
  • Lens distortion and small errors in focal length can shift where things land in the image, which throws off the position prediction
  • SCOPE aims to recalibrate these camera parameters from star images so FOUND can correct for them

Why calibrate in orbit?

  • A camera can be calibrated on the ground, but launch vibrations and temperature changes in space shift it
  • One pixel of our camera covers 119″, about 1.5 km at the horizon from 500 km up
  • NASA calibrates the Orion capsule's navigation camera on star fields in flight
  • SCOPE follows the same approach, from Christian et al. (2016)

The lens: Edmund Optics 6 mm f/4

  • 64° × 49° field of view on a 2064 × 1544 sensor, 119″ per pixel
  • −6.8% barrel distortion at the edge of the image
  • SCOPE models it with the Brown–Conrady model: three radial terms and two tangential terms

Pipeline

Star images

→

Dark frame

→

Centroiding

→

Fit

→

Calibration

→

FOUND

  • Input: star images, dark frames, an attitude for each image, and a star catalog (currently Yale Bright Star Catalog)
  • Camera model: pinhole projection with Brown–Conrady distortion
  • Output: the 10 camera parameters, intrinsics (focal lengths, skew, principal point) and 5 distortion terms, with 1σ uncertainties from the covariance, plus refined attitudes for every image
  • Written in C++17

Stage 1: dark frame

  • Hot pixels or noise in the sensor can look like faint stars or affect the detection of actual stars
  • We take the per-pixel median of many different frames, which rejects stars if they show up
  • That median is the dark frame, and subtracting it from each image removes the noise

Stage 2: centroiding

  • SCOPE predicts each catalog star's pixel using the prior camera parameters and searches a 31 × 31 px area around it
  • The centroid is the brightness-weighted mean of the bright pixels near the peak
  • The lens is slightly defocused so stars cover a few pixels instead of one, which lets the centroid reach sub-pixel accuracy

Stage 3: least-squares fit

  • The fit solves for the 10 camera parameters plus an attitude correction for each image
  • It minimizes the pixel residuals with Levenberg–Marquardt, a nonlinear least-squares method
  • Outliers beyond 4σ are rejected, and the averaged attitude corrections give the camera's alignment to the star tracker

Levenberg–Marquardt

  • Shown with two parameters, focal length and k₁, so the cost surface can be drawn
  • Each step is a Gauss–Newton step with damping λ, which shrinks after good steps and grows after bad ones
  • The long valley means focal length and k₁ partly cancel each other

Validation

0.13px
SCOPE, held-out residual on simulated images
0.18px
Orion paper, real camera (about 5″)
11%
Largest gap from the paper's own simulation results (Table 1)
  • Tested on synthetic images rendered from a known camera
  • Held-out residual: fit on 15 images, then predict star positions in 15 new ones
  • The paper comparison reruns its 1000-run Monte Carlo (Table 1) on the paper's camera

Status

Done

  • Basic prototype of all three stages
  • A synthetic image generator prototype
  • Some tests against the paper's simulation

Not done

  • Testing on real sky images
  • Integrating with FOUND
  • Flying in space!

Questions?