A design tool for the spacecraft's highest-accuracy attitude sensor — the star tracker (STR). It images stars on a CMOS/CCD, matches them against a catalog and recovers 3-axis attitude to arcsec accuracy. Adjust detector resolution, FOV, centroid precision, number of tracked stars, integration time and body rate to watch image-motion smear and total accuracy update in real time.
Parameters
Detector resolution
px
CMOS/CCD pixel count on one side (1024² to 4096² is typical)
Field of view (FOV)
deg
Wider FOV gathers more stars; narrower FOV improves pixel resolution
Longer = higher SNR but lower update rate and more smear
Spacecraft angular rate ω
deg/s
3-axis body rate. Rises to several deg/s after thruster firings
Magnitude limit m_lim
mag
Detection limit magnitude. Fainter limit = more catalog stars
Results
—
Pixel angular resolution (arcsec)
—
Single-star accuracy (arcsec)
—
Ensemble accuracy (arcsec)
—
Body-rate smear (arcsec)
—
Total attitude accuracy (arcsec)
—
Stars available in FOV
—
Detector field-of-view view
Stars in the detector FOV (white dots) with centroid marks (blue) and smear sticks (red) scaled by body rate. Brighter stars are drawn larger; the smear stick grows with ω.
Star density and FOV solid angle. m_lim = magnitude limit. Stars available ≈ ρ_star · Ω_FOV. Use 30–50% of this for keep-out and high-latitude losses.
Star Tracker Pointing Accuracy — Spacecraft Attitude Control
🙋
A "star tracker" is the sensor a spacecraft uses to figure out its attitude by looking at stars, right? But how can just looking at stars give you arcsec-level attitude?
🎓
Yes, exactly. The star tracker (STR) is by far the most accurate attitude sensor a spacecraft can carry. A CMOS or CCD images a few to a few tens of stars in the FOV, and that pattern is matched against a star catalog (Hipparcos, Tycho) that was prepared on the ground. The catalog gives the absolute position of every star on the celestial sphere to milli-arcsec accuracy, so back-solving from there gives you 3-axis attitude. Hubble, JWST and JAXA's Hayabusa missions achieve 1–3 arcsec; commercial buses 10–30 arcsec.
🙋
Why does adding more stars improve the accuracy? The chart shows that as N_s goes up, accuracy improves…
🎓
It's the classic statistical trick: averaging N independent measurements cuts the noise by √N. Single-star centroid σ_centroid is typically 0.1 px, which is a few arcsec at the system level. Combine 8–16 stars into a least-squares attitude estimator (QUEST, for example) and the error drops by √8 ≈ 2.8 or √16 = 4. That's why FOVs are kept generously wide (about 15°) — to capture enough stars. But too wide and the pixel angular resolution FOV·3600/N_px gets worse. Play with both sliders on the left to see the trade-off.
🙋
With the defaults the verdict is "ng" and smear is huge — 72 arcsec. What's going on?
🎓
Good catch. That's image-motion smear: while the integration is open, the spacecraft rotates and each star streaks across the sensor instead of staying a point. With the default ω = 0.1°/s and t = 200 ms, the FOV slides by 0.1·3600·0.2 = 72 arcsec, about 1.4 px. At that level centroiding breaks down and the smear dominates the budget. On orbit it's the same story: right after safe-mode recovery or a thruster firing the body rate is too high and the STR effectively goes blind, so the gyro takes over until the rate settles. Drop ω to 0.01°/s and the total accuracy will improve dramatically.
🙋
"Roll axis is 6× worse" also caught my eye. Aren't all three axes equally accurate?
🎓
It's a geometric inevitability. The two cross-track axes (pitch and yaw, perpendicular to the boresight) are determined directly by where each star lands in XY on the sensor. The roll axis (rotation about the boresight) is determined by the angular pattern of stars around the FOV centre, so the lever arm is short and the sensitivity is poor. The rule of thumb is σ_roll ≈ 5–10 · σ_cross-track. If a mission needs tight roll knowledge, you either widen the FOV or fly three or four STRs in orthogonal mounts and fuse them. Hayabusa2 carried two STRs for exactly that reason.
🙋
Right after power-on the spacecraft has no idea where it's pointing. Can it really recover attitude just by looking at stars?
🎓
That's the famous "Lost-in-Space" problem. The industry-standard solution is Mortari's (1997) Pyramid Algorithm: pick any four stars in the FOV, build the six inter-star angles of the resulting pyramid and match them against a k-vector index of thousands of stars extracted from Hipparcos. The whole thing returns an attitude in milliseconds with a false-match probability below 10⁻⁶. That's why a satellite can reacquire attitude within 30 s of a cold reboot. Major STR vendors are Sodern (France), Jena-Optronik (Germany), Selex-ES (Italy), Ball Aerospace (US), Surrey (UK); in Japan NEC and Meisei build their own designs.
Frequently Asked Questions
The baseline budget is σ_ensemble = (FOV·3600 / N_px) · σ_centroid / √N_stars. FOV is the field of view (deg), N_px is the detector resolution along one side, σ_centroid is the sub-pixel centroid 1σ (typically 0.1 px) and N_stars is the number of simultaneously tracked stars. Spacecraft body rate ω adds image-motion smear σ_smear = ω·3600·t (t in seconds), so the total budget is σ_total = √(σ_ensemble² + σ_smear²). Geometrically the roll axis is 5-10× worse than the two cross-track axes, with σ_roll ≈ 6·σ_total as a rule of thumb.
The Lost-in-Space problem is determining 3-axis attitude from a single star image when the spacecraft has no prior attitude knowledge (after power-on or safe-hold recovery). The Pyramid Algorithm by Mortari (1997) is the de-facto solution: it picks any four stars in the FOV, computes the six inter-star angular distances of the resulting 'pyramid', and matches them against a k-vector index of thousands of catalog stars (Hipparcos/Tycho). It returns an attitude solution within milliseconds with a false-match probability below 10^-6, and is used in nearly every modern commercial STR.
Smear becomes critical when it exceeds one pixel, since centroiding then degrades quickly. For an FOV=15°, N_px=1024 tracker, the pixel angular resolution is about 53 arcsec/px. With a 200 ms integration and an angular rate of 0.1°/s, the smear is 0.1·3600·0.2 = 72 arcsec ≈ 1.4 px — already in the warning region. Operationally, after safe-mode entry or thruster firing the body rate can be >0.5°/s, at which point the STR goes 'blind' and the spacecraft falls back to gyro+Kalman propagation until the rate settles.
Sky star density grows roughly as 2.5^(m_lim − 6) stars/sqdeg with limiting magnitude m_lim (about 1 star/sqdeg at m_lim=6). The FOV solid angle is Ω = π·(FOV/2)². For FOV=15°, m_lim=6.5 → Ω≈177 sqdeg, density ≈ 1.58/sqdeg, so usable stars ≈ 280 — plenty of margin. However at high galactic latitudes the density drops by a factor of two or more, and the Sun, Earth and Moon keep-out cones make part of the sky unusable. Use 30-50% of this theoretical count when sizing a real mission.
Real-world Applications
Science observatories & space telescopes: Hubble (HST) achieves 0.007 arcsec pointing stability using three Fine Guidance Sensors plus three STRs — the foundation of every exoplanet transit and Hubble-constant measurement it has produced. JWST at L2 reaches ~1 milli-arcsec stability with three STRs and three FGSs. ESA's Gaia mission uses two STRs to support 24 μas-class astrometry over 2 billion stars.
Earth observation: WorldView and Pléiades high-resolution optical satellites need ~1 arcsec attitude knowledge to support 30 cm ground sample distance. Multiple STRs arranged in a star-sensor triangle, fused with gyros via a Kalman filter, sustain that accuracy. X-ray observatories (XRISM, Athena) have narrow fields of view, so STR performance directly drives observation efficiency.
Deep-space and sample return: JAXA's Hayabusa and Hayabusa2 used two STRs for autonomous navigation far from Earth communications. ESA's Rosetta encountered STR false detections from cometary dust around 67P/Churyumov–Gerasimenko and had to be patched in flight; NASA's OSIRIS-REx faced the same class of issue at Bennu.
CubeSats and commercial LEO constellations: Palm-sized STRs (Blue Canyon Technologies NST, CubeSpace CubeStar) now bring 50 arcsec attitude knowledge to 6U/12U CubeSats. Constellations such as Starlink and OneWeb embed STRs as a standard sensor on every satellite, enabling inter-satellite laser links and collision-avoidance manoeuvres at scale.
Common Misconceptions & Pitfalls
The first trap is assuming all three attitude axes have the same accuracy. They do not. The two cross-track axes (pitch and yaw, perpendicular to the boresight) are 5–10× more accurate than the roll axis (rotation about the boresight). Stars near the FOV centre barely move under a small roll rotation, so the lever arm is short and any centroid noise amplifies. If your mission requires roll knowledge below 5 arcsec, you have to either widen the FOV or fly multiple STRs in orthogonal mounts. This tool shows σ_roll ≈ 6·σ_total as a typical figure, but real missions evaluate it via Monte Carlo on the actual star pattern.
The second trap is assuming a star always exists in the FOV when you need it. Sun keep-out cones (30–45°), Earth-limb keep-out (60° in LEO, 9° in GEO) and Moon keep-out (10–15°) constantly carve usable sky out of the boresight. For a LEO satellite, 30–40 minutes of every 90-minute orbit can have at least one of two STRs blinded by the Earth limb. A keep-out analysis tied to the orbit propagator is mandatory at the design stage — skip it and you end up with a satellite that cannot update attitude for half the day.
The third pitfall is radiation-induced detector degradation. In GEO, HEO and deep-space environments, CMOS/CCD pixels accumulate hot pixels and dead pixels from cosmic rays, and centroid accuracy worsens over years. Galileo's STR drifted from 0.1 px to roughly 0.3 px centroid noise over a decade at Jupiter. Always specify the requirement at End-of-Life accuracy, not Beginning-of-Life, and bake on-orbit dark-frame acquisition and bad-pixel-map updates into the operations plan. The numbers in this tool are BOL ideal values.
How to Use
Set detector resolution (pixels) for your CMOS or CCD sensor—typical values range 512 to 4096 for spacecraft-grade imagers
Define field of view (FOV) in degrees; narrow FOV (1–5°) yields finer angular resolution while wide FOV (10–20°) captures more reference stars
Enter centroid accuracy in pixels (0.1–1.0 px typical for modern detectors) representing sub-pixel measurement precision
Specify number of stars to track simultaneously; constellation availability constrains this parameter
Observe pixel angular resolution, single-star accuracy, ensemble accuracy from multiple stars, body-rate smear effects, and total attitude error in arcseconds
Worked Example
Consider a LEO imaging spacecraft with 2048×2048 CMOS detector, 8° FOV, 0.3 px centroid accuracy, tracking 4 bright stars. Pixel angular resolution = (8° × 3600 arcsec/°) / 2048 px ≈ 14.1 arcsec/px. Single-star accuracy = 14.1 × 0.3 px ≈ 4.2 arcsec. Ensemble accuracy with 4 stars = 4.2 / √4 ≈ 2.1 arcsec. At 5°/s body rate with 100 ms integration, smear ≈ 0.5 × 5 × 100 ms ≈ 250 arcsec; total attitude error ≈ √(2.1² + 0.25²) ≈ 2.1 arcsec, meeting tight GEO stationkeeping requirements (±5 arcsec).
Body-rate smear scales linearly with integration time and angular velocity; use shorter exposures or increase detector quantum efficiency (QE >75%) to enable faster frame rates
Star availability in FOV depends on galactic latitude; equatorial passes yield 6–10 usable stars, polar regions may drop to 2–3 stars, degrading ensemble accuracy by 50%
Narrow FOV (<3°) reduces stray-light and thermal background but increases lost-in-space acquisition time; wide FOV (>15°) improves robustness but demands larger optics and higher detector resolution