The Pyramid Star Identification Technique
The Pyramid Star Identification Technique
Daniele Mortari
, Malak A. Samaan
, Christian Bruccoleri
Daniele Mortari, Associate Professor, Department of Aerospace Engineering, 701 H.R. Bright Building,
Room 741A, Texas A&M University, 3141 TAMU, College Station, Texas 77843-3141 Tel. (979) 845-0734,
FAX (979) 845-6051. mortari@aero.tamu.edu
Malak A. Samaan, Post-Doc Research Associate, Spacecraft Technology Center, Room 127H, Texas
A&M University, College Station, TX 77843-3141, Tel. (979) 845-8768, samaan@tamu.edu
Christian Bruccoleri, PhD candidate, Department of Aerospace Engineering, 701 H.R. Bright Building,
Room 620C, Texas A&M University, College Station, TX 77843-3141, Tel. (979) 485-0550, FAX (979)
845-6051, bruccoleri@tamu.edu
John L. Junkins, George J. Eppright Chair Professor, Director of the Center for Mechanics and Control,
722 Bright Bldg., Department of Aerospace Engineering, Texas A&M University, College Station, TX 77843-
3141, Tel: (979) 845-3912, Fax: (979) 845-6051, junkins@tamu.edu
1
multiple-elds-of-view star trackers, has been adopted for the StarNav dual-eld-of-view au-
tonomous star tracker, which is the science attitude determination system for the NASA
EO-3 Geosynchronous Imaging Fourier Transform Spectrometer (GIFTS) New Millennium
mission.
The star polygon geometric structure is dened by the set of M =
n!
(n 2)! 2!
interstar angles
associated with a spherical polygon set of n stars, such as pairs (n = 2), triangles (n = 3),
as well as pyramids (n = 4). The spherical polygon is closely related to the usual polygon,
where the straight line sides are replaced by great circle arcs (angles) on the surface of a unit
sphere connecting the neighboring pairs of stars in a set of p stars. More specically, the star
pattern geometric structure for the purpose of star identication is dened by the set of M
interstar angles
ij
=
ji
= cos
1
(b
T
i
b
j
) measured between each distinct pair of the p line-
of-sight vectors (b
i
, b
j
) : (i, j) 1, 2, . . . p that point from the sensor toward the vertices
of the star spherical polygon on the celestial sphere. Note we adopt the convention that the
measured line-of-sight unit vectors with components in the sensor body axes are denoted
b
i
, whereas the corresponding line of sight vectors based on cataloged information with
components in the inertial reference frame of the star catalog are denoted r
I
. The whole
objective of star identication can be boiled down to nding the correspondence between
indices (i) of measured stars and the indices (I) of cataloged stars.
Matching the set of M measured interstar angles cos
1
(b
T
i
b
j
) with a cataloged set of interstar
angles cos
1
(r
T
I
r
J
), to within measurement precision provides the basis for a hypothesis that
the stars at the vertices of the measured polygon of stars are indeed the cataloged stars at the
corresponding vertices of the matching polygon from the star catalog. Such a match clearly
does not dictate a certain star identication, however, and acceptance of this hypothesis
should be informed by the expected frequency of such a match occurring at random between
the measured polygon and an invalid set of p cataloged stars. For example, if we know
the theoretical expected frequency of mismatching an invalid polygon with a given set of
measured interstar angles, to within known measurement error statistics, is negligible - e.g.,
one mismatch every 10
20
tested polygons - we can be justiably optimistic that the star
identication hypothesis is valid, especially if some of the identied stars are reidentied
consistently on overlapping adjacent images. On the other hand, if the random invalid
match frequency is greater than some tolerance to be decided experimentally, we should
have cause for concern and should likely reject the hypothesis and/or match more stars until
the prescribed tolerance in the random match frequency is passed.
To implement such a statistical decision process based upon theoretical frequencies, we need
to know the frequency formulas. Reference [3] rst introduced the idea of an analytical
approach to estimate the frequency of false matches associated with a given star scenario,
which was based on the assumption of a uniform star distribution. This analytical approach,
with frequency formulas restricted to up to a pyramid star polygon, is given in the next
section.
The Pyramid algorithm proposed in this paper can be considered a rst step toward a star-
ID algorithm that is fully based on invalid match frequency formulation. These explicit
2
analytical formulas provide a basis for statistical inference logical tests of a star pattern
identication hypothesis that has not been available previously, although practical algorithms
have been developed empirically based on Monte Carlo testing and trial-and-error tuning
of available star identication algorithms. A fundamental diculty associated with such
Monte Carlo testing, is that random sampling statistical inference computational approaches
become infeasible if one is pursuing frequencies on the order of 10
7
or smaller, because of the
necessity of having a very large number (certainly > 10
8
) of samples to establish statistically
signicant frequency estimates for such infrequently occurring events. Indeed, it would be
desirable, if computationally feasible, to reduce the expected frequency of a random star
identication to far less than once over the lifetime of a given mission - i.e., 1/(# of star
identications over the life of a multiyear mission), which for the anticipated high-frame-
rate active pixel cameras corresponds to a frequency of less than < 10
10
. Of course, we
must acknowledge that there is a large distinction between the lost-in-space case and the
case of recursive star identication, where we can use new stars in polygons with previously
identied stars whose catalog identity is near certain. Therefore, the no prior information
perspective implicit in the above discussion will typically be highly conservative, except for
the rst lost-in-space star identication.
In any event, we anticipate that over the course of the next decade, there will be at least
occasional need for star identication algorithms with an overall expected frequency of mis-
matches approaching 10
10
, and for longer missions with high star camera frame rates, we
can conceive of a need for exceptionally small expected star mismatch frequencies (perhaps
even < 10
20
). Obviously, validation of such frequency estimates is compounded because
every sensor design change and every resetting of any variable system parameter may neces-
sitate repeating the mismatch frequency analysis. It is evident that Monte Carlo processes
will be impractical in this situation. As with the perpetual thirst for faster computers, we
can never develop a star identication algorithm that fails too rarely! Moreover, even with-
out pursuing such small frequencies of spurious star identications, it is very obvious that
having the capability to quantify and minimize the frequency of failure is fundamental to
analyzing/optimizing overall mission reliability. Therefore, we expect that the formulas al-
ready developed [3] and future renements [4] to nd a very practical home in sensor design
and mission analysis as a result of eliminating the reliance on slowly converging statistical
simulations, such as Monte Carlo processes.
A high percentage of spurious star images (spikes) introduces a crisis in almost all existing
algorithms for star pattern recognition for stars imaged by charge coupled devices (CCD)
star trackers. Failures and anomalies associated with such spurious images have been experi-
enced several times in space missions using star trackers to estimate the spacecraft attitude.
For example, the Space Transportation System (STS) 101 Space Integrated Global Posi-
tioning System/Inertial Navigation System Orbital Attitude Readiness (SOAR) star tracker
experiment encountered spurious sun reections o debris released by an adjacent experi-
ment, resulting in a large number of spikes that, in turn, caused the star pattern recognition
algorithms used for SOAR to fail.
The Pyramid algorithm, better than any known approach to solve the star identication
problem, oers the simultaneous advantages of being extremely ecient and robust to ran-
3
dom spurious images and making it possible to compute an estimate that informs the decision
to accept or reject a star pattern match hypothesis. If the estimated frequency of a random
pattern match is not suciently small, remedial hypothesis/test logic can be invoked to add
more stars to the pattern or reject the entire image. Actually, the method presented herein
can tolerate even more spurious images as long as there are at least four catalog stars (for
the case of modern star trackers with equivalent angle star centroiding errors of a few arc-
seconds); however, the computation time is obviously a function of the number of spurious
images.
FREQUENCY OF STAR PATTERN MISMATCHING
This section provides the mathematical tools that establish, in a closed form, the reliability
of the star identication process associated with the three most fundamental star structures
used in the star-ID algorithms. These star structures consider the interstar angles associated
with polygon sets of p = 2, 3, 4 stars such as a pair, a triangle, or a Pyramid of four stars.
Let us consider the whole sky with a uniform star distribution. This implies that the star
density (which depends on the given magnitude threshold m), is simply given as
(m) =
N(m)
4
(1)
where N(m) is the overall number of stars with magnitude less than m.
Figure 1: Innitesimal spherical area
Let us consider the spherical surface dened by a cone of aperture , that is, the area
S() = 2 (1 cos ) (2)
and let us consider that the axis of this cone is aligned with the i-th star. Referring to Figure
1, in the innitesimal spherical area dS(), which can be evaluated as the dierence between
two cones of apertures ( + d) and , and which has the area
dS() = S( + d) S() = 2 sin d (3)
4
the expected number of stars falling in dS() will be
dn() =
dS() =
(N 1)
2
sin d (4)
where
= (N 1)/(4) indicates a uniform star density that diers slightly from the
expression of the uniform star density given in equation (1). This dierence is due to the
fact that, by aligning the axis of the cone with the i-th star, we force that star to be deleted
from the overall number of stars available in the counting of the star density. Now, the
product
df
ij
() =
1
2
N dn() =
N(N 1)
4
sin d (5)
provides the number of star pairs i-j separated by an angle ranging from to ( + d).
The division by 2 is due to the fact that the product N dn() double counts the number of
star pairs because it considers the star pair i-j and the same star pair j-i. By integrating
equation (5) over the whole sky, it is possible to nd the number of possible combinations
N
comb
of N objects (stars) taken two by two:
N
comb
=
_
0
df
ij
() =
N(N 1)
2
(6)
This equation can be obtained independently. Note that it is the number of combinations
of N objects taken two at a time, and thus we have an independent check on equation (5).
Hence, the expectation of the overall number of admissible star pairs f
ij
displaced by an
angle that varies from (
ij
k) to (
ij
+k) is found by integrating equation (5) over this
small region as
f
ij
=
N(N 1)
4
_
ij
+k
ij
k
sin d =
=
N(N 1)
2
sin(k) sin
ij
(7)
This equation represents the expected frequency that false matches between measured ob-
jects, to within measurement precision, are matched by random pattern combinations in
the catalog, assuming a uniform star density.
We note that the actual star distribution is not uniform, however, simulations indicate
that at most factors of two frequency variations occur, and thus we must take this into
account conservatively in interpreting the frequency results obtained (i.e., it would be unwise
to believe the frequencies exactly, but we can usually tolerate the factor of two dierence
between small numbers such as 1 10
7
or 2 10
7
!).
Figure 2 shows, for the StarNav I experiment (8 deg
2
eld of view [FOV], magnitude threshold
= 5.5, 512 512 pixel CCD, focal length = 50 mm, and 3 = 10 arcsec), the residuals
between the values for f
ij
provided by equation (7) and random simulated data. After
some experimentation, we found that the adopted value for k should be about 6.4, a value
somewhat greater than the 3 value of k = 3
= 0.1f
ij
, and the
approximation of uniform density leads to moderate errors. However, this approximation is
indeed adequate for order-of-magnitude analysis.
Star Pattern with two Legs
Consider the case of a three star pattern ijk. We seek to match the measured interstar angles
(
ij
k) and (
ik
k). To do this, let us consider the i-th star. Now, using equation (4),
it is easy to evaluate the number
f
ij
of stars j displaced from i by an angle that varies from
(
ij
k) to (
ij
+ k). This number is
f
ij
=
_
ij
+k
ij
k
dn() = (N 1) sin(k) sin
ij
(8)
Analogously, the number
f
ik
of stars k displaced from i by an angle that varies from (
ik
k)
to (
ik
+ k) is
f
ik
=
_
ik
+k
ik
k
dn() = (N 1) sin(k) sin
ik
(9)
6
Hence, the frequency that a star matches with both legs (star pairs ij and ik) is
f
i(j,k)
= N
f
ij
f
ik
= N [(N 1) sin(k)]
2
sin
ij
sin
ik
(10)
Star Pattern with m Legs
Equation (10) can be easily generalized to quantify the frequency that a star matches with
m legs (that is, with m other stars identied by), obtaining
f
i(j
1
,...,jm)
= N
jm
j=j
1
f
ij
= N [(N 1) sin(k)]
m
jm
j=j
1
sin
ij
(11)
which completes the searched solution.
Figure 3: Dierential Area Associated with Measurement Error for 3 Stars
Triangle Star Pattern
Let us now consider the frequency of random occurrence associated with matching all three
angles. With reference to Figure 3, let us consider one of the f
ij
star pairs, where f
ij
has the
expression provided by equation (7), and let us consider the intersection area A of the two
spherical surfaces associated with the angles
ik
(centered at the i-star) and
jk
(centered
at the j-star). Note that for the given measured angles, and associated uncertainties, the
k-th star must lie in one of the two small areas A. The area A can be approximated by
considering the spherical square as planar (see Figure 4).
In this case, the area A = (2k), since sin
k
= 2k, can be approximated as
A =
(2k)
2
sin
k
(12)
7
Figure 4: Intersection area
This implies that the expected frequency of random occurrence (that a given star triangle is
matched within measurement precision) is
f
ijk
= f
ij
(
2A)
=
N(N 1)(N 2)
(k)
3
sin
ij
sin
k
(13)
where
= (N 2)/(4) is a modied star density that does not take into account the
stars i and j that obviously cannot fall into the two small A cone intersection areas. Note
that equation (13) is symmetric (as expected) with respect to any considered side of the star
triangle. In fact, the sine law for the spherical triangles establishes that
sin
ij
sin
k
=
sin
ik
sin
j
=
sin
jk
sin
i
(14)
Pyramid Star Pattern
The expected frequency associated with a four star pattern can easily be derived from that
of a triangle star pattern. In fact, under the assumption of a uniform distributed catalog,
the probability to nd the fourth star in the assigned star uncertainty area (represented by
a cone of aperture k), is simply the ratio of that area with respect to the overall 4 (entire
celestial sphere), multiplied by the overall number of available stars in the catalog (N 3).
Therefore, for a pyramid of stars, the frequency is
f
ijkr
= (N 3)
1 cos(k)
2
f
ijk
(15)
8
A SMART TECHNIQUE TO SCAN TRIANGLES
The Pyramid algorithm is built starting with a basis star triangle. It is important to devise
a suitable technique to scan subsequent triangles because we would like to avoid persisting
in using a star that may be a spike and not a real catalog star. The right choice of the
triangle sequence implies the need to maximize the changes on the index stars resulting from
one selection with respect to the next. This maximization denes the optimal sequence.
The original Pyramid version [3] proposed a heuristic approach indicating that although
the sequence obtained by a random shuing of all the triad combinations can never be
guaranteed to be optimal, it will statistically avoid retaining spurious stars and wasting the
time to perform trials to match angles to other stars. To this end, the original Pyramid
version reads out a le containing the indices of the shued sequence triads for triangle
selection. This method, however, which has been found to be much more suitable than the
crude approach of three inner loops, has the disadvantage of requiring additional memory
(especially when a high value of the observed stars n is adopted), since all the triangle index
combinations must be memorized.
To avoid this problem, the new Pyramid version proposed herein contains a smart technique
for producing the indices of subsequent star triangles that is based on the simple three
inner loops concept. This technique, whose results should be compared with respect to
the mathematically rigorous optimal solution to this problem (still unknown), is described
below using a pseudocode language, which can easily be translated into any another existing
programming language.
LOOP dj from 1 to (n-2),
LOOP dk from 1 to (n-dj-1),
LOOP i from 1 to (n-dj-dk),
j = i+dj,
k = j+dk,
next combination is "[i j k]",
END LOOP i,
END LOOP dk,
END LOOP dj,
For instance, for n = 5 observed stars, the smart sequence of triad indices is 1-2-3, 2-3-4,
3-4-5, 1-2-4, 2-3-5, 1-2-5, 1-3-4, 2-4-5, 1-3-5, 1-4-5. The extension of this technique (devised
specically for the Pyramid algorithm) to the general case of n objects taken k by k would
be of great interest.
THE PYRAMID ALGORITHM
In lieu of immediately presenting all the details of the proposed algorithm, we rst summarize
the major logical steps and a few new features associated with this algorithm. Subsequently,
we go into selective detail.
9
The Pyramid algorithm contains several important new features. The rst is access to the
star catalog using the k-vector approach, [5]-[7] instead of the much slower binary search
technique (see the appendix). The k-vector database is built a priori for some given working
magnitude threshold and for the star tracker maximum angular aperture. Essentially, the
k-vector table is a structural database of all cataloged star pairs that could possibly t in the
camera FOV over the whole sky. The star pairs are ordered with increasing interstar angle.
The data stored are the k index, the cosine of the interstar angle, and the master catalog
indices I[k] and J[k] of the kth star pair. The k-vector access logic is invoked in real time
for a minimal set of star pairs in elementary measured star polygons (three for a triangle,
six for a four-star pyramid, etc.); the fact that the vertices between adjacent measured star
pairs share a common cataloged star is the key observation leading to logic for eciently
identifying the stars by simply comparing the k-vector accessed catalog indices from the
several sets of candidate star pairs (which must contain the common measured pivot star, if
it is in the catalog).
The second new feature is avoidance of identical (redundant) information requests. The
information provided by the k-vector for an observed star pair (say, [b
i
, b
j
]) is stored so that
any further request for such information does not require accessing the catalog again. The
stored information consists primarily of the number of admissible stars pairs, along with the
identiers of the involved catalog stars - information contained in the two integer vectors of
indices I and J.
Third, a smart technique to scan triangles. Existing algorithms that are based on star
triangles and are designed to identify and discard spikes should be considered the nonnegli-
gible possibility: if all the possible observed star triads are scanned using three inner loops
and the star associated with the most external loop is a spike, most of the time spent has
been wasted. To avoid such waste, the combination sequence for the considered triads is
produced by a three inner loop-based technique that avoids persisting with a given index.
The resulting triangle sequence is an attempt to maximize the changes in the three indices
identifying the triads (as opposed to the traditional schemes, which in essence pivot exhaus-
tively about a possibly invalid star). This is accomplished in the present version of Pyramid
by the described smart three inner loop technique, which avoids both the memory required
for stored optimal sequences and persistence in using a given star index (no pivot star is
retained for more than two successive instances of matching logic).
Fourth, a robust four-star-based Pyramid is used instead of the more classic triangle to
increase the probability of a correct star identication process. It is important that all
interstar angles be matched to within measurement precision (six for a four-star-polygon,
see Figure 5) to obtain the maximum condence in the match. This also provides an easy way
to identify spikes. The only limitation is that at least four catalog (good) stars are needed to
build the Pyramid. For purposes of this paper, a good star is one that is included in the star
catalog used by Pyramid, so it can be a star derived either by using a bigger catalog or by
merging a double star when the centroiding resolution is not enough to resolve the two objects
separately. Anything else, such as planets, articial satellites, debris, and, more commonly,
stars not included in the catalog, is generally considered noise. The star tracker hardware
must therefore be designed to image at least four stars within the chosen integration time.
10
Figure 5: Basic Star Triangle and Pyramid
This is not considered an issue since the CCDs available for astronomy purposes can easily
achieve the required performances with an FOV of 10 to 20 deg. At the precision limit of
a few arcseconds achieved by state-of-the-art star trackers, a star identication process that
matches the six measured and cataloged interstar angles for a four star pyramid is essentially
a certain match.
Finally, we use the analytical means [1, 4] to compute the expected frequency of random
occurrence that a cataloged polygon of stars could match, to within camera precision, the
given measured polygon. This analytical means of computing the expected frequency is
novel and is important to eliminate the need for expensive and slowly converging Monte
Carlo estimates of star identication reliability.
The proposed Pyramid algorithm uses no information on star magnitude. Figure 5 shows
the basic star structure used within the algorithm, which consists of a basic star triangle,
identied by the indices i, j, k, together with a conrming fourth star, identied by the
index r.
The method, depicted in Figure 6, essentially accomplishes the task by the following steps
(where n is the number of observed stars):
(1) if n = 3, then the four star pyramid [i, j, k, r] cannot be built. Therefore, the Pyramid
logic simply seeks to establish whether the triangle is unique. We note that the three-
star case is dangerous, as it is associated with a higher probability of misidentication.
The three-star case is introduced because sparse region of sky with low star density
exists, and also because the three-star case represents the worst scenario for which a
star identication process - based entirely on interstar angles can still be accomplished.
However, when we are engaged in recursively applying the star identication algorithm,
we will have identied some of the stars in previous images containing more than three
stars, and much higher condence than is provided by three stars alone is possible
when the three-star identications are consistent with previous images/identications.
11
Figure 6: Pyramid Flowchart
12
For this mode (recursive star identication), we believe three stars to be sucient if
consistency tests are used to augment the lost-in-space algorithm. The problem of
specular triangles is solved here by the following discriminating criterion. Let i-j-k be
the indices of an observed star triangle and I-J-K be the indices of the corresponding
catalog star triangle. Provided that the i-j-k triangle is not degenerating (coplanar or
double stars), the catalog triangle is not specular if
sign[b
T
i
(b
j
b
k
)] = sign[r
T
I
(r
J
r
K
)] (16)
is satised. This allows us to discard specular triangles. Note that if more than one
nonspecular cataloged triangle is found to match the measured triangle to within the
measurement tolerance, the star identication is not accepted as unique.
(2) If n > 3, the Pyramid algorithm looks for a unique triangle [i, j, k] by scanning
the smart combination indices associated with all the star triangles and checking
the k-vector accessed indices to establish a hypothesis for the cataloged indices for
each star. Also, using the derived formulas, the frequency with which this measured
polygon match could be made with a random invalid polygon from the catalog can
be computed; if this number is greater than some tolerance, the star identication is
rejected.
(3) If a high-condence triangle identication is found in step 2, Pyramid will scan the
remaining stars to nd one that further conrms the basic star triangle [i, j, k], with
the analytical frequency test employed at each stage.
(4) When step 3 is accomplished successfully, the pyramid is identied as that having the
star indices [i, j, k, r]. This means that these four stars are, at this point, identied
with a very high condence. The three stars constituting the basic star triangle [i, j, k]
are then used to identify the remaining stars (p) as good ones (when the stars conrms
the basic star triangle) or to identify the measured image as a spike. If desired, the
entire set of identied stars can be used to form an n-star polygon, and a nal frequency
can be analytically computed to indicate the likelihood that a random match could
match all of the angles to within measurement precision. Typical random frequencies
for modern star trackers with four or more valid stars are smaller than 10
7
, so matching
four or more stars usually results in near-certain star identication, especially if this
occurs on successive star identications and the identied stars overlap.
(5) If a conrming r star is not found, another basic star triangle [i, j, k] is selected by
choosing another smart combination of star indices. This means returning to step 2.
(6) If all the smart combinations of star indices are used, the Pyramid algorithm will
provide the basic star triangle [i, j, k], if unique. Otherwise the Pyramid logic will
output a ag indicating a failure in the star identication process. Note our basic
philosophy: we establish a level of condence a priori, and we prefer to report a star
identication failure (perhaps once in 1,000 images with four or more valid stars)
rather than output a lower condence star identication. Modern attitude estimation
13
algorithms can easily tolerate infrequent data dropouts, but are generally much less
forgiving of invalid star identication.
PYRAMID RESULTS
The Pyramid algorithm has proven successful in Monte Carlo star image simulations, in
night sky tests, and in orbit on the HETE spacecraft [1].
Comparisons of the Pyramid algorithm (in terms of speed, robustness, memory required, etc)
with existing alternative algorithms are beyond the scope of this paper. These comparisons,
which are much too lengthy for a paper introducing a new algorithm, would require, at the
least, obtaining the original codes by the authors, which would be dicult.
MONTE CARLO SIMULATIONS
End-to-end numerical tests based on simulations of random unknown spacecraft attitude,
star image centroid measurements (including measurement errors), star catalog access, Star-
ID, and attitude estimation have been carried out. To determine robustness, speed and
accuracy, we tested the algorithm with an increasing number of spikes. Pyramid was found
to accomplish the star identication process reliably with as few as four valid stars and up
to 24 random spikes. This extreme number of spurious images would be a rare occurrence
in practice, but we believe that the previous-generation algorithms encounter reliability
diculties with far fewer spikes.
To simulate the centroiding errors, Gaussian noise of 50rad (3) was added to the star
directions. Figure 7 shows a histogram of the number of stars (good stars + spikes) for the
simulated test cases, along with the number of spikes in each image.
The execution time for each image, using a MATLAB program running on 450 MHz PC with
Microsoft Windows 98, is shown in Figure 8. The computation time is obviously a function of
the number of spurious images; in our simulations, however, the star identication is always
accomplished in less than 1s using a compiled version of the algorithm from C source code.
Using the fastest available attitude estimator (that is, ESOQ-2 [8], with the latest improve-
ment [9]), the estimated attitude direction cosine matrix C
E
(t) is calculated using the ob-
served star vectors and the cataloged star vectors of the identied stars. The parameter that
quantify how far the estimated attitude is with respect to the true is described by the
maximum direction error (max) or the expectation (E) of the direction error, which
are evaluated according to
max = cos
1
_
trace[C
T
C
T
E
] 1
2
_
and E =
4
max (17)
During simulation, the true attitude C
T
is known. This allows us to conveniently describe
the error of C
E
, provided by equation (17), by three dierent meaningful components. These
14
Figure 7: Histogram of the Number of Star and Spike Occurrence during Tests
Figure 8: The Execution Time VS the Number of Stars
15
errors are (1) the error
oa
of the sensor optical axis (OA), and (2) the error range, min(
n
)
and max(
n
), experienced by the directions orthogonal to the OA. These errors describe the
polarization of the attitude error about the OA when the attitude is estimated by single
FOV star tracker, and fully justify the proposed use of multiple-FOV star trackers. From a
mathematical point of view, these errors are evaluated as
oa
= cos
1
( b
T
oa
C
T
C
T
E
b
oa
) and
_
min(
n
) = cos
1
( b
T
n
C
T
C
T
E
b
n
)
max(
n
) max
(18)
where
b
n
=
b
oa
(b
oa
e)
|b
oa
e|
(19)
In particular, b
oa
identies the on-board direction of the OA, and e is the principal axis of
the corrective attitude matrix C
T
C
T
E
. The numerical values of
oa
and [min
n
, max
n
],
obtained by numerical tests, are shown in Figures 9, 10, and 11, respectively.
Figure 9: Mean Errors of the Optical Axis
To validate Pyramid, a 1,000-snapshot observations (images) were simulated using random
attitudes. The tests simulated a VC51 camera (752 582 CCD pixels of 6.5m6.25m
pixel size) with a 35mm lens corresponding to a rectangular 3.92 2.91 deg. FOV. The
magnitude threshold was set to 5.8, which implies a 3,694-star catalog. Correspondingly, the
k-vector was 57,798 elements long.
16
Figure 10: Minimum Errors About the Optical Axis
Figure 11: Maximum Errors About the Optical Axis
17
In the 1,000 tests, the number of successful identications were 958, which represents a
successful proportion of 95.8 percent. The 42 failures were all experienced when n = 3 stars
were observed, and multiple catalog triangles were found that could be associated with the
observed triangle. In these cases, Pyramid outputs a failure identication ag. No failure
was experienced for the n 4 scenarios. Many n = 3 cases (associated with a unique catalog
triangle) were successfully identied. However, these tests conrmed that the n = 3 case is
dangerous because it is associated with a greater chance of failure.
SKY NIGHT TESTS
Pyramid has been tested extensively and successfully both in orbit [1] and in night sky
experiments. For the latter, a VC51 camera (752 582 CCD pixels of 6.5m6.25m size)
was used. The VC51 is equipped with an ADSP2181 32 MHz digital processor, a memory of
16K16 bits for programs and 16K24 bits of data. For the image storage and processing,
the Digital Signal Processor (DSP) is connected with a bus to a Dynamic Random Access
Memory (DRAM) of 8 MB. It is possible to save several images on board the camera using a
2 MB Erasable Programmable Read Only Memory (EPROM). The lenses used were 24 mm,
28 mm, and 35 mm Nikon lenses, connected through a C adapter. The DSP Pyramid code
can simultaneously track up to 24 stars. Before performing the tests, the correct focal length
f of the lens was evaluated using the new Non-Dimensional Star-ID algorithm [10], capable
of identifying observed stars even with a lens whose focal length is completely unknown.
Successful additional night sky tests of Pyramid were performed with the GIFTS prototype
camera Star1000 (1024 1024 pixels). These tests validated the extension of Pyramid to
multiple-FOV camera.
The most likely failures are associated with a defective image (intrusion by sun/moon/earth,
etc.), sensor hardware malfunction, and sensor aging. Occasionally, sparse star elds con-
taining fewer than four stars would be encountered. These events are anticipated in the
algorithm and detected by failure modes.
CONCLUSIONS
This paper has introduced a novel method for star pattern identication based on matching
interstar angles between measured vectors to those from a star catalog. We have consider
the case of having no prior information, and shown that our Pyramid algorithm can solve the
lost-in-space problem while being highly tolerant of spurious events such as reections and
electronic noise. The Pyramid algorithm is also believed to be the most ecient algorithm
for solving the lost-in-space problem. Even with 6, 000 cataloged stars, a high percentage
of spurious images, and no prior information, we can typically identify a measured star eld
within a small fraction of a second given the constraints of routinely available computers.
Such velocity and robustness have been achieved because at the heart of Pyramid is the k-
vector method for accessing the candidate catalog stars without searching for any measured
pair, and because the Pyramid idea is established and supported by analytically expected
18
random frequencies associated with matching interstar angles from measured star polyhedra.
Finally, we note that the computational and night sky experimental validations of the results
of this paper will be augmented by on-orbit validation in Drapers Inertial Stellar Compass
for the New Millennium Program.
APPENDIX: The k-vector range searching technique
Let y be an n-long data array (the data might be the interstar dot products of all the
star pairs admissible within the star tracker FOV) and s be the same array but sorted in
ascending mode, i.e. s(i) s(i +1), i = 1, , n1. Let I be the integer vector that keeps
a record of the sorting y(I(i)) = s(i). In particular, let us to dene y
min
= min
i
y(i) = s(1)
and y
max
= max
i
y(i) = s(n).
Figure 12: Example of k-vector Construction
k-vector construction
Under the hypothesis that y has uniformly distributed data, the straight line connecting
the two points [1, y
min
] and [n, y
max
] has, on average, E
0
=
n
n 1
elements for each d =
y
max
y
min
n 1
step. With reference on the example given in Figure 12, let us consider a
19
slightly steeper line which connects the point [1, y
min
] with the point [n, y
max
+], where
= max[ [ y
min
[, [ y
max
[ ] and is the relative machine precision ( 2.22 10
16
for
double-precision arithmetic). The equation of this slightly steeper line line is
z(x) = m x + q (20)
where
m =
y
max
y
min
+ 2
n 1
and q = y
min
m (21)
Starting with k(1) = 0, the integer vector k is then constructed as follows
k(i) = j if the j index satises s(j) z(i) < s(j + 1) (22)
where the index i ranges from 2 to (n 1). From a practical point of view, k(i) gives the
number of the elements s(j) below the value z(i). Figure 12 shows the construction of the
k-vector for a 10-element database. The small horizontal lines are equally spaced at points
z(i), and they give the k-vector values
k := 0, 2, 2, 3, 3, 5, 6, 8, 9, 10
k-vector use
The evaluation of the two indices identifying the data falling within the range [y
a
, y
b
] becomes
an almost searchless task. The indices associated with these values in the s vector are simply
provided as
j
b
=
_
y
a
q
m
_
and j
t
=
_
y
b
q
m
_
(23)
where the function x| is the integer number immediately below x, and x| is the larger
integer number next to x. In the example of Figure 12, j
b
= 4 and j
t
= 9. Once the indices
j
b
and j
t
have been evaluated, it is possible to compute
k
start
= k(j
b
) + 1 and k
end
= k(j
t
) (24)
Knowledge of k
start
and k
end
represents the solution of the range searching, since the searched
elements y(i) [y
a
, y
b
], are all the y(I(k)) elements provided by ranging k from k
start
to k
end
.
In the example of Figure 12, however, the searched elements should be those identied by
the range indices k
start
= 4 and k
end
= 8, while the proposed technique outputs k
start
= 4
and k
end
= 9. This problem can easily be solved with a linear search at the beginning and
end of the retrieved data. The details can be found in [6].
References
[1] Crew, G. B., Vanderspek, R., and Doty, J., HETE Experience with the Pyramid Algo-
rithm, MIT Center for Space Research, Cambridge, MA, 02139 USA, 2002.
20
[2] Brady, T., Tillier, C., Brown, R., Jimenez, A., and Kourepenis, A., The Inertial Stellar
Compass: A New Direction in Spacecraft Attitude Determination, Paper SSC02-II-1,
16th Annual USU Conference on Small Satellites, 2002
[3] Mortari, D., Junkins, J.L., and Samaan, M.A., Lost-In-Space Pyramid Algorithm for
Robust Star Pattern Recognition, Paper AAS 01-004, Guidance and Control Conference,
Breckenridge, Colorado, 31 Jan. - 4 Feb. 2001.
[4] Mortari, D., Junkins, J. L., and Samaan, M. A., An Analytical Approach to Star Iden-
tication Reliability, in preparation.
[5] Mortari, D., A Fast On-Board Autonomous Attitude Determination System based on a
new Star-ID Technique for a Wide FOV Star Tracker, Advances in the Astronautical
Sciences, Vol. 93, Pt. II, 1996, pp. 893-903.
[6] Mortari, D., Search-Less Algorithm for Star Pattern Recognition, Journal of the Astro-
nautical Sciences, Vol. 45, No. 2, April-June 1997, pp. 179-194.
[7] Mortari, D., and Neta, B., k-vector Range Searching Technique, Paper AAS 00-128 of
the 10th Annual AIAA/AAS Space Flight Mechanics Meeting, Clearwaters, FL, Jan.
23-26, 2000.
[8] Mortari, D., Second Estimator of the Optimal Quaternion, Journal of Guidance, Control,
and Dynamics, Vol. 23, No. 5, Sept.-Oct. 2000, pp. 885-888.
[9] Markley, L.F., and Mortari, D., New Developments in Quaternion Estimation from
Vector Observations, Paper AAS 00-266 of the Richard H. Battin Astrodynamics Sym-
posium Conference, Texas A&M University, College Station, TX, Vol. 106, March 20-21,
2000, pp. 373-393.
[10] Samaan, M. A., Mortari, D., and Junkins, J. L., Non-Dimensional Star Identication
for Uncalibrated Star Cameras, Paper AAS 03-131 Space Flight Mechanics Meeting,
Ponce, Puerto Rico, February 9-13, 2003.
21