You are on page 1of 9

Acta Astronautica 131 (2017) 19

Contents lists available at ScienceDirect

Acta Astronautica
journal homepage: www.elsevier.com/locate/aa

crossmark

Real-time star identication using synthetic radial pattern and its hardware
implementation

Yang Zhao, Xinguo Wei , Gangyi Wang, Jian Li


School of Instrumentation Science and Opto-electronics Engineering, Beihang University, 100191, China

A R T I C L E I N F O

A BS T RAC T

Keywords:
Star identication
Star sensor
Radial pattern
Hardware implementation

Star identication algorithm has always been the core strategy of star sensors. For the time being, the
identication speed is becoming the bottleneck of satisfying real-time requirements (e.g. high-speed
maneuvering applications, power breakdown and so on) on the premise of the robustness. To solve this
problem, this paper proposes a novel lost-in-space star identication algorithm based on the synthetic radial
pattern, which is dedicated to the pipelined parallel architecture of FPGAs (Field Programmable Gate Arrays).
The synthetic radial pattern consists of two single radial patterns connected by their two respective polestars. In
the algorithm, the polestar-pair is rstly matched and optimum identication results can be obtained after the
follow-up radial pattern ltering. Then, the number of spurious matches can be reduced to a much less level and
a mathematical model is also developed to demonstrate the eciency compared with conventional radial
algorithms. Simulations show that the approach is very robust towards various noise conditions and the
quantied identication time is less than 1 ms at a low resource cost when it is implemented on FPGA
platforms.

1. Introduction
Autonomous attitude determination devices have rapidly developed
in the past decades as an accurate and fast attitude is more and more
essentially required by almost all ying vehicles. Among many types of
attitude measurement sensors including sun sensors, geo-magnetometers, gyroscopes and star sensors, novel star sensors are the most
accurate and characterized by a high degree of autonomy and fast fault
recovery capability. The autonomous attitude determination process
for a star sensor involves capturing a star image from a star camera,
extraction of the brightness and centroid location of stars from the
image, identication of sensor stars and the nal attitude calculation
[1]. As more and more high-speed maneuvering applications like space
weapons and near space vehicles work at an angular velocity over 10/
s, or a sudden power breakdown, a correct real-time attitude updated
in several milliseconds is more and more essentially needed. This
situation can be dened as a lost-in-space problem where the prior
attitude is nearly unknown. In addition to excellent image sensors, the
typical diculty to solve such problems lies in a highly robust and
ecient full-sky star identication algorithm inside a high-dynamic
star sensor. So, implementing an even faster identication strategy on
the premise of good robustness is a worthy challenge in our study.
Many full-sky autonomous algorithms have been proposed to solve

Corresponding author.
E-mail address: wxg@buaa.edu.cn (X. Wei).

http://dx.doi.org/10.1016/j.actaastro.2016.11.015
Received 4 July 2016; Accepted 6 November 2016
Available online 14 November 2016
0094-5765/ 2016 IAA. Published by Elsevier Ltd. All rights reserved.

the lost-in-space problem [2] and the great majority of them can be
partitioned into two classes [3]. The rst tends to approach star
identication as a subgraph isomorphism. It uses angle separations
or polygons to structure its database. These algorithms include triangle
algorithms [4,5], pyramid algorithm [6], geometric voting algorithm
[7] and iterative algorithm [8]. Typically, two types of angle separation
database lookup methods, the star pair table method [9] and k-vector
approach [10], were proposed and a comparison was also carried out in
[9]. The second class tends to approach this problem as a sort of
pattern recognition. Each star is associated with a unique pattern by
analyzing its geometric distribution in the neighborhood. And then a
match can be achieved by nding the closest pattern in the catalog. The
most representative one is the grid algorithm [11]. Later, the radialpattern-based algorithms, like the polestar algorithm [12], radial and
cyclic features algorithm [3] and log-polar transform strategy in [13].
Compared with the grid algorithm, the radial-pattern-based algorithms
are more accurate to t more situations. Considering the FOV size and
robustness towards sensor measurements, the two kinds of approaches
have their own properties and a detailed comparison was carried out in
[14].
These algorithms are mostly implemented on fast processors like
DSP and ARM. Codes can be easily written and optimized but
complicated and sequential logic operations limit the execution speed.

Acta Astronautica 131 (2017) 19

Y. Zhao et al.

PL
dr

L(m)
np(m)
f(m)

Nomenclature
B
onboard guide star catalog
P
star pair catalog
R
star radial pattern catalog
NC
number of onboard catalog stars in B
NS
number of stars in pattern
s, c
sensor star, catalog star
spat, cpat sensor stars and catalog stars radial pattern
score
similarity between spat and cpat
PR
pattern radius

pattern vector length


radius used for distinguishing double stars
angle separation measurement error, deg
measured angle separation, deg
discrete angle separation
range of each group in P, deg
threshold used for ltering candidates
number of dierent stars in the m-th group of P
number of star pairs in the m-th group of P
occurrence frequency of an angle separation m

star interferences. (Binary stars are two stars that seem to be close in
the direction of line-of-sight, and their spots are too close for the
centroid resolution to resolve them separately on the focal plane). A bit
vector cpat(1, m, , PL) of length PL (pattern length) is derived for
the catalog stars pattern. In the vector, there is 1 on bit m if the angle
separation between the pivot and a neighbor satises the equation
m=ceil(/), and other bits are 0. Typically, let PR be FOV, then PL
equals to ceil(FOV/) consequently. (ceil(x) rounds x to the nearest
integer not less than x).
Sensor star radial pattern vectors by spat(1mPL) are derived
for a sensor star s similarly. To identify a sensor star, the idea is to
perform a logic AND operation between cpatI and spati representing
the catalog star cI and the sensor star si respectively, then count the
number of 1. Supposing that there are NC catalog stars in total and
NS sensor stars in a radial pattern, this match is formally given as

Whats worse, more budgets of such hardware are needed if less


execution time is going to be made. Recently, FPGA-based systems
have become a topic of strong interest due to larger capabilities, lower
costs of reprogrammable logic devices and higher performances with
parallel processing compared with sequential processing. They contain
an array of computational elements, known as logic blocks, slices or
adaptive logic modules (ALM), of which the functionality is predetermined and thus time for reading instructions from memory can
be saved. Besides, plenty of embedded memory resources can be
utilized to satisfy the requirement of the fast data processing.
Actually, more and more star trackers are designed based on novel
embedded hardware platforms like FPGA with a CPU core like DSP or
ARM. The solution has been successfully veried in real space
missions. Current researches are focusing on dedicated methods that
can further take advantage of the FPGAs parallel processing architecture.
Solutions involving the parallelizable neural network have been
made in [15,16]. It seems to be appropriate in FPGAs. However, they
are very sensitive to the brightness noise and waste hardware
resources. In this paper, a very fast and highly robust algorithm based
on the synthetic radial pattern is proposed. It assimilates ideas from
the rst kind of approach where the typical star pair match strategy and
radial pattern are used. The proposed algorithm consists of simple logic
operations only and is dedicated to FPGA-based devices. In this way, it
allows high-dynamic star sensors to acquire valid and unique identication pairings less than 1 ms, which is less relevant to the budget or
performance indicator of the hardware platforms.
The rest of this paper is organized as follows. In Section 2, an
overview of radial algorithms is rstly given to facilitate following
descriptions and a synthetic radial pattern is also derived based on a
novel analytical model. In Section 3, details and performance tests of
our algorithm are presented. In Section 4, the feasibility of FPGA
implementation of the algorithm is discussed. Section 5 gives a
conclusion of the paper and some future works.

PL

score (I , i ) =

NS

(cpatI &spati )t =
t =1

k =1, k i

cpatI (mik )
(1)

where I=1, 2, , NC, i=1, 2, , NS and mik indicates the k-th discrete
angle separation originated from si. The result written score(I, i)
represents the similarity between cI and si. It is obvious that the
catalog star which has the highest score is most likely to be the correct
correspondence.
For matching eciency and memory savings, the two cited radial
algorithms [3,12] use a lookup table (LT) to realize the match. The LT
has PL entries each of which corresponds to a strip in the radial
pattern. The m-th entry contains all catalog stars indices whose m-th
bit in the radial vector is 1. That is, if cpatI(m)=1, cI is added to the mth entry LT.m. We denote the number of dierent stars in the entry
LT.m by L(m). It is known that L(m) is proportional to m and the
greater is, the greater L(m) will be. In the light of LT, Eq. (1) can be
calculated as: in terms of score(I, i) associated with si, it is added by 1
only if cI is found in the mik-th entry.
2.1.2. Disadvantages
In the case of star identication, an angle separation inside a sensor
star pair cannot be precisely obtained due to sensor measurement
errors. Given a sensor star si to be identied and one of its measured

2. Preliminaries
We rst give an overview and some discussions of the conventional
radial-pattern-based algorithms. Then, to analyze the identication
eciency towards various noise conditions, we develop a mathematical
model, with which the identication idea using a synthetic radial
pattern is formulated.
2.1. Overview of conventional radial algorithm
2.1.1. Radial pattern generation and match method
As reliable as the raw angle separation feature, the radial pattern is
rational-invariant and can only be determined by the distribution of its
neighborhood.
Given the pattern radius PR and the discrete ring strip interval ,
the radial pattern is generated for the catalog polestar c as shown in
Fig. 1. The parameter dr is dened for the consideration of the binary

Fig. 1. Radial pattern generation scheme. The m-th bit is set to 1 only if a neighbor
exists in the m-th strip.

Acta Astronautica 131 (2017) 19

Y. Zhao et al.

angle separations ik and its uncertainty , any catalog star which owns
an angle separation in the segment (ik, ik+) should be remained
as a correspondence. That is, the pattern bits from mikstart to mikend in
cpat should be taken into consideration using Eq. (1). mikstart and mikend
are given as

m start = ceil ( ik )
ik

mikend = ceil ( ik + )

NS

(5)

If at least pairs among (NS1) pairs are supposed to be correct


due to the tolerance of false pairs, the analytical number of redundant
pairings will follow a binomial distribution expressed as
NS 1

(2)

N (mi , , NS ) NC

l=

C (NS 1, l )

n =1

NS 1

f (mikn )
kn =1

[1 f (mikn )]]}

kn = l +1

(6)

NS

f (mik )

k =1, k i

Hence, Eq. (1) is updated as

score (I , i ) =

N (mi , NS 1, NS ) = NC

[cpatI (mikstart )|cpatI (mikstart + 1)|... |cpatI (mikend )]

k =1, k i

where C(NS1, l) indicates the combination numbers of l random


stars selected from NS1 neighbors andmikn is the kn-th pair between si
and a neighbor in the n-th combinations. The estimation is attributed
to partial overlaps among those combinations. Typically, the bigger
is, the bigger the error will be within an acceptable tolerance.
N (mi , , NS ) should be much lower than 1 with a lager value of NS
because f (m ) is always lower than 1. The smaller N (mi , , NS ) is, the
less redundant pairings there will be. It can be concluded that we can
increase NS and simultaneously decrease the dierence between and
NS to lower N (mi , , NS ). It is hard to control the values of mi in
practice. However, testing more sensor stars can increase the possibility of generating spurious matches and increasing will certainly
decrease the robustness towards false pairs.

(3)

where | stands for a logic OR operation and we dene mikstart = mik 1


and mikend = mik + 1. In this way, the algorithm must be able to tolerate
positional errors of the value in the expense of more ambiguous
pairings. The strategy coincides with the classic angle separation
method where star pairs with approximately the same angle separation
values should be taken as candidates [5]. Since radial patterns are
generated based on angle separations among neighbors, we can treat
the pattern match process just like the angle separation method. Thats
why the result comes into play.
Whats worse, magnitude noise (allowing dimmer stars to appear
and brighter stars to be lost), space refuse and variable stars will
further complicate the matter. These uncatalogued spots involved in
the generation of a sensor stars radial pattern lead to false pairs. Given
NS sensor stars, the similarity score will consequently range from 0 to
NS1. The catalog star that has the highest score even can be an
erroneous correspondence. A threshold , an indicator of at least
correct pairs, is set to determine the best candidate catalog stars in the
polestar algorithm; that is, if cI has a score(I, i) not less than , cI will
be remained as a candidate for si. This tolerance also results in more
candidates.
Therefore, stars cannot be matched unambiguously without later
verication. The radial and cyclic algorithm uses cyclic features among
neighboring stars to reduce ambiguous pairings. But this questionable
feature largely depends on the correct determination of the location
star. The polestar algorithm uses the pair or polygon match method in
the verication scheme to persevere its integrity. If a pair or a polygon
obtained from sensor stars uniquely matches those that are generated
among candidates, the identication succeeds. But lots of angle
separations among candidates need to be calculated, resulting in
unexpected time costs. It cannot meet the real-time requirements.

2.2.2. Description of synthetic radial pattern


As described before, a common identication process is as follows:
rst, two single radial patterns around s1 and s2, as shown in the left of
Fig. 2, are used to acquire candidates initially; second, the angle
separation m12 between s1 and s2 is used to reduce candidates through
a pair match method later. So, if we take the two processes as a whole,
the synthetic radial pattern shown in the right of Fig. 2 is actually
utilized. Compared with the two single radial patterns around at s1 and
s2, the vital distinguish lies in the fact that the measured angle
separation m12 in the synthetic radial pattern has been matched to
catalog pairs rather than two separate candidate sets of s1 and s2.
We denote the initial number of candidate catalog pairs that match
m12 by np(m12) and two pairs consisting of the same two vertices count
only once; then, the frequency of a random star pair among NC(NC1)
pairs that match m12 will be np(m12)/[NC(NC1)]. Therefore, the
analytical number of candidate pairings for the synthesized radial
pattern is approximately given as

2.2. Idea of synthetic radial pattern


Apparent contradiction grows to ensure higher identication rates
due to the increasing number of redundant pairings and this will
conversely decrease the identication eciency. A concise mathematical model is rstly provided to evaluate this problem as well as the
noise inuences we have just discussed.
2.2.1. Mathematical model
The frequency that si has a discrete angle separation mik is denoted
by f (mik ). Supposing there is a uniform star distribution on celestial
sphere. As L(mik) dierent stars exist in the mik-th entry of LT and all
entries from (mik1) to (mik+1) may contribute new candidates, the
total number of dierent stars in these three groups is written
|LT . (mik 1) LT . mik LT . (mik + 1)|. So f (mik )is given as

f (mik ) =

LT . (mik 1) LT . mik LT . (mik + 1)


NC

(4)

Hence, for a NS stars radial pattern around si, the analytical number of
candidate pairings for si that matches all NS1 angle separations
mi = {mik |k [1, NS ], k i} is expressed as

Fig. 2. Synthetic radial pattern from the synthesis of two single radial patterns.

Acta Astronautica 131 (2017) 19

Y. Zhao et al.

Table 1
Star sensor configurations.

Table 3
Star pair table.

Image plane dimension


Principle point
Focal length
FOV
Magnitude threshold

20482048 pixels
(1024, 1024) pixels
44.39 mm
14.514.5
6.0Mv

Table 2
Number of candidate pairings using different patterns (NS=10, =6).
Pattern types

Single radial pattern

Synthetic radial pattern

Analytical results
Simulation results

110.6
119.1

6.2
8.3

N (m1, 1, NS ) np (m12 )
]
NC
NC (NC 1)
N (m2 , 1, NS )
[(NC 1)
]
NC
2

NS 1

{
i =1

C (NS 2, l 1)

l=

n =1

l 1

kn = l

[1 f (mikn )]]]}

Star pairs

FOV/

(m1)

FOVFOV

(1, 117), (25, 99)

3. Algorithm description

f (mikn )
kn =1

3.1. Database generation

NS 2

Angle separations ()

synthetic radial pattern, if it is directly feasible without the original


verication of two single patterns, must be much more ecient without
sacricing identication rates. However, the two cited algorithms
cannot decide optimum candidates until the verication nishes. The
proposed algorithm in this paper nds a solution assimilating ideas
from the rst class of algorithms with which the original verication
phase can be skipped. Therefore, the synthetic radial pattern can be
used as a basic pattern to realize star identication in a much more
ecient fashion.

N (m1, m2 , , NS ) [NC

np (m12 )

Group index

The proposed algorithm uses a database consisting of the basic


guide star catalog B containing stars orientation and magnitude, the
star pair table P and the radial pattern table R. Since both P and R
originate from B, we rst give a simple and functional method to build
B.
The minimum sensitivity of the star sensor is set at 6Mv. So there
will be 5103 stars in total based on the SAO J2000 database. However,
some of those stars are not suitable for the practical use, like binary
stars and variable stars. Whats more, stars are not so evenly
distributed over the celestial sphere that the variance of number of
catalog stars in the FOV is large. That is, areas can be very dense lled
with excessive number of stars in some boresight directions (e.g. the
Milky Way), leading to the ambiguity in the star pattern identication;
in contrast, fewer stars are detected in other areas [17]. Several
methods can be used to determine stars that should be excluded. A
simple method used in our study is given here. After discarding binary
stars and variable stars, we arrange each remaining star a related
counter. For the brightest stars in a simulated star image, each
related star counter will be added by 1. After 500,000 simulated star
images of random boresight directions, the stars whose related
counters are still zero can be excluded. In our algorithm, is set to
10 and 3737 catalog stars are remained in B consequently where stars
are ordered according to their original numbers in SAO J2000
database.
R is then built containing NC radial patterns information following
the description in Section 2.1.1.
P is sorted in ascending order in terms of angle separations and
divided into a number of groups structured as Table 3, which contains
entries including indices of the catalog pairs and corresponding group
indices [8]. It is seen that P and LT have almost the same generation
method and consequently, the similar access method and memory

(7)

where the value (1) is because the pair m12 has been matched
leaving (1) pairs to be matched. The value of (NC1) in the third
multiplier is due to the fact that a catalog star that has matched s1 must
be excluded.
To observe the implications of the proposed model, consider the
following typical values: NC=3737 and =0.03. As the positional noise
is deviated by 60 and the magnitude noise is 0.5Mv, and NS are set
to 6 and 10 for a higher identication rate of nearly 100% when the rst
one or two sensor star pairs are taken as polestars. The sensor
congurations in this paper are listed in Table 1. Then, a comparison
between analytical results and simulated results using both a single
radial pattern and a synthetic radial pattern are shown in Table 2.
Results are acquired under 500 random sensor orientations. We are
mainly interested in whether correct pairings are included in the
candidate sets; if so, a simulation is recorded as a successful identication. It can be seen that two kinds of results match moderately well. In
practice, the error rates are always lower than 3% with dierent values
of and NS. Considering the range of the results and partial overlapping star elds where some stars are re-identied, the model is
adequate for a generalized analysis. Especially, error rates and residuals are much smaller as is closer to NS.
Some conclusions can be drawn from above developments. First,
compare Eq. (6) with Eq. (7), it indicates that plenty of spurious
matches can be ltered through a pair match verication and the
number goes down by at least an order of np(m12)/NC (typically 0.1 at
least) once a sensor pair is veried. That is, the number of spurious
matches can be initially decreased by a smaller np(m12) to reach a
faster convergent speed, which corresponds to a smaller angle separation between s1 and s2. Moreover, it can be predicted that the number
of spurious matches must be close to zero if up to two connected
synthetic radial patterns nds true pairings, meaning that a unique and
correct identication is made. Also, that order is related to the
predened values of NS and . The smaller dierence between them,
the less redundant matches are left.
Second, from Table 2, it is known that mean simulated results are
119.1 and 8.3 respectively using the single radial pattern and the
synthetic radial pattern. However, to acquire these 8.3 optimum
pairings, up to 119.1^2 calculations and comparisons of angle separations must be processed in the verication of the polestar algorithm. It
makes the whole identication very time-consuming. In contrast, the

Fig. 3. Data structure of our database.

Acta Astronautica 131 (2017) 19

Y. Zhao et al.

consumption. In other words, the table P can replace LT to complete


conventional radial algorithms. But distinguishes are still obvious. The
pair (cI, cJ) appear as whole in the group of P but they are separately
arranged in the corresponding entry of LT, losing the important
adjacent information between cI and cJ, which can be used as a
powerful tool in the verication. For a tentatively identied sensor pair
(si, sj) with discrete angle separation m, cI and cJ are already
candidates for si and sj respectively after the initial pattern match. If
the pair (cI, cJ) as a whole can be found in the m-th group of P, this
pair (cI, cJ) can continue being remained for (si, sj). In this way,
complicated angle calculations in the verication of the polestar
algorithm are replaced by a much more ecient table-lookup way.
Typically, cI means the I-th catalog star in B and cpatI is the stars
radial pattern in R. For easy description, later, we will also use (I0, J0)
to represent (cI0 , cJ0 ) and the successive pairs following (I0, J0) will be
(I1, J1), (I2, J2), (I3, J3) and so on.
The detailed storing structure for the database is shown in Fig. 3.
The total memory usage of the database in this paper is about 661KB.
Arrows point out the possible ways of accessing information. It
indicates that radial pattern information and basic information including orientation and magnitude can be indexed by the catalog pair
indices.

them. Those candidate pairs (cI, cJ) which simultaneously meet


equations in Eq. (8), Eq. (9) or both are optimally selected as the best
matches to (s1, s2), (s2, s1) or both. In this way, we realize the
identication of the synthetic radial pattern around (s1, s2).
Step D Cross verication: As concluded from Section 2.2.2, the
verication can be completed immediately after another initial match
process. Suppose (cI, cJ) matches (s1, s2) and (cK, cL) matches (s1, s3)
through two initial match processes, if the two catalog stars related to
s1 satisfy the condition cI=cK and then only one pairing exists, it
reports a successful identication where (cI, cJ, cL) match (s1, s2, s3).
So, we can call it a cross verication which will be very quick as very
few number of candidate pairs exist. Moreover, we can continue to
check whether the following comparison between the angle separations
of (cJ, cL) and (s2, s3) is satised.

3.2. Identication scheme

3.2.2. An identication example


The following short example demonstrates how the method works
and its complete identication process is shown in Table 4.
The original simulated image contains 31 stars and 10 brightest
stars are picked up as the input of our algorithm. Their sensor star
identities are assigned and the corresponding catalog indexes are given
in the rst and the second rows of the Table 4. The positional noise is
deviated by 60 and the magnitude noise is 0.5Mv. Two false stars
(sensor stars 3 and 6) are added with random positions and magnitudes. Algorithm parameters are set as follows: NS=10, =6 and
=0.03. In the initial match, four sensor pairs have been processed
in which two sensor pairs (s1, s2) and (s1, s4) acquired candidate pairs
but the other two containing false stars did not in contrast. The two
pairing results of (s1, s2) and (s1, s4) have a conjunct star s1, so the
angle verication can be established in (s2, s4). Finally, a successful
identication is obtained after verifying these two pairing results, that
is, the sensor stars (s1, s2, s4) match the catalog stars (271, 278, 129).

If ambiguous pairings still exist or no pairings are acquired, other


sensor pairs should be used to repeat above processes until a unique
pairing remains. Practically, if two sensor pairs can be veried, the
pairing result between three sensor stars and three catalog stars always
lead to a correct identication.

3.2.1. Identication steps


The identication includes two essential steps, the initial match
(Step A, Step B and Step C) and the cross verication (Step D). After
the initial match, optimum pairings can be acquired using the synthetic
radial pattern and they are often unique. However, a captured sensor
image often contains false stars because of hot spots, radiation and
planets which may be identied to be a match to a catalog star
erroneously. The verication must be applied. Detailed implementation
steps are given as follows:
Step A Pattern generation: Generally, the brighter sensor stars
have a higher measurement precision. As shown in Fig. 2, we select NS
brightest sensor stars to generate synthetic radial patterns. From the
rst conclusion of Eq. (7), the smallest angle separation should be
picked up rst from ceil(NS/2) brightest stars to avoid more candidates
and time costs. If we arrange the sensor pair (s1, s2) as two polestars in
the rst identication trial, discrete angle separations are calculated
among
two
polestars
and
their
neighboring
stars
as
m12, m13, m14, , m1NS , m23, m24, , m2NS .
Step B Star-pair matching: For higher identication rates towards
positional noise, all catalog pairs (cI, cJ) from the (m121) to the
(m12+1) group in P can be candidate pairs for (s1, s2) and they are
subsequently read out.
Step C Radial pattern ltering: For each catalog pair (cI, cJ), their
precomputed radial patterns (cpatI, cpatJ) can be acquired from R.
As the angle separation is symmetric, a comparison needs to be given in
two ways as

score (I , 1) ,

score (J , 2) .

(8)

score (I , 2) ,

score (J , 1) .

(9)

(10)

(cJ , cL ) (s2, s3) <

3.3. Performance tests using synthetic star images


Several software simulations have been performed to measure the
identication rates and average identication time under a variety of
noise conditions. The testing star catalog contains 15935 stars with
apparent magnitudes less than 7.0Mv based on the SAO J2000
database whereas 3737 stars are included in B. The star sensor
congurations are listed in Table 1. Software simulations were
implemented in MATLAB on an Intel Core i5-3210M 2.50 GHz PC.
Each simulation performed included 10,000 random sensor star
images. The brightest six sensor pairs generated from ve sensor stars
{s1, s2, s3, s4, s5} were used as double polestars of one initial match in
following simulations for a common analysis. Noise terms including
positional noise, brightness error and false stars were introduced.

Above two expressions are calculated by substituting Eq. (3) in


Table 4
Identification process of an example.
Sensor star
Catalog index
Initial match

Verication

1
2
3
4
5
271
278

129
288
(s1, s2): (128, 278), (271, 278)
No match for (s1, s3)
No match for (s2, s3)
(s1, s4): (3503, 3650), (271, 129)
(c278, c129) = 4.6791, (s2, s4 ) = 4.6915, (c278, c129) (s2, s4 ) = 0.0124

7
282

8
277

9
125

10
286

Acta Astronautica 131 (2017) 19

Y. Zhao et al.

brighter stars to be lost in the image. Fig. 5 shows how the identication rate and time change as the brightness accuracy decreases with
position errors deviated by 60. As shown, identication rates and time
of our algorithm keep unchanged above 99.8% and 9.2 ms respectively
as the brightness error increases to 0.5Mv. There is an obvious increase
of the identication time when the brightness error was more than
0.5Mv. It is mainly because the algorithm needs more iterative sensor
pairs as more and more stars which are not included in the catalog are
also imaged. In fact, about 19 unexpected stars on average are imaged
at 1Mv brightness error. The proposed method still shows moderate
robustness towards such conditions and the time cost is acceptable.
3.3.3. Performances towards false stars
The acquired image can contain false stars. In this test, the position
error and brightness error were maintained at 60 and 0.4Mv
respectively. We added 1 or 2 false stars with dierent brightness.
Fig. 6 shows how identication rate and time change with respect to
false stars. Obviously, 1 imaged false star nearly has no inuences on
the identication rate regardless of its brightness. On the contrary, the
algorithm needs more time to deal with 2 imaged false stars cases to
achieve a higher identication rate over 96.62%. Obviously, brighter
false sensor stars are more likely to be used in the star-pair matching
phase and if we test more sensor pairs, the identication rate will be
further improved.

Fig. 4. Identication results versus position error.

4. FPGA implementation and analysis


The proposed method is very appropriate to be implemented on
FPGA platforms and above performance tests have demonstrated the
algorithms high robustness. Thus, it can be used to solve the real-time
star identication problem for high-dynamic star sensors. Note that,
the angle separation calculation module is implemented by several oat
point arithmetic IP components in our method. In addtion, from
details in the above section, there are two major processes in the initial
match, star pair matching and radial pattern ltering. And subsequent
pairs are independent of each other, meaning that each pair can
personally calculate similarity scores to decide to be remained or
excluded. Based on this, resulting architecture is shown in Fig. 7
consisting of two major components.

Fig. 5. Identication results versus brightness error.

4.1. Components
4.1.1. Star-pair matching component
The centroid results of brighter image spots are taken as inputs of
the angle separation calculation module to obtain discrete angle
results. Actually, the angle separation module serves as an address
generator. As soon as the calculation is completed, m12 is taken as the
group index for P stored in the external RAM #1. From these groups
that start with a pair (I0, J0), catalog pairs (I0, J0), (I1, J1), (I2, J2),
are written into the FIFO subsequently. The FIFO data cache as well as
the FIFO controller is implemented for the consideration of the
asynchronous clock between RAM #1 and the internal component.
The FIFO doesnt need to be deep because it is read nearly immediately
as soon as it becomes non-empty.

Fig. 6. Identication results versus false stars with dierent magnitudes.

3.3.1. Performance towards positional error


Captured stars positional information is subject to some noises. To
test the eect of positional errors, random Gaussian noise was added to
the sensor star pairs in terms of angle separations. As the brightness
error deviation was set to 0.4Mv, it causes nearly 7.3 unknown stars
below the minimum sensitivity to be imaged and about 2.5 expected
stars to be eliminated on average. Fig. 4 shows how the identication
rate and time change as position error varies between 0 and 200. It
can be seen that our algorithm always achieves the identication rate
over 97.31% and the identication time almost keeps steady below
16 ms as position error increases to 160.

4.1.2. Radial pattern ltering component


Radial pattern ltering procedure is also being processed simultaneously while roughly matched pairs (I, J) are being fetched from FIFO
one by one. Then the pairs (I, J) are taken as the reading address
indicator of RAM #2 where the catalog R is stored. Now we have cpatI
and cpatJ from R, Eqs. (8) and (9) can be completed by some adders
and comparators. Optimum candidates will be stored in the
Verication module waiting for a cross validation. Since there are
about 8 redundant catalog pairs on average using one polestar pair, so
the cross verication is simple and fast. In particular, RAM #2 is
implemented by the memory block resources on chip. For some novel

3.3.2. Performance towards brightness error


Brightness noise allowed dimmer stars to actually appear and
6

Acta Astronautica 131 (2017) 19

Y. Zhao et al.

Fig. 7. The proposed hardware architecture.

Altera Cyclone 5CEBA5F23C7 [18] in Quartus II software. P and R


were transformed into Memory Initialization File (mif) which were
stored in memory blocks for a fast validation. No parameter adjustments were performed in the Verilog HDL codes. We here give an
implementation example and the sensor image we tested was the same
as that has been used in Section 2.2.2. In order to allow a graphic
visualization of the whole identication detail, Fig. 9 is presented based
on the ModelSim software environment.
Here, the signal pair_count is used to indicate which two subsequent stars are a true cataloged pair and the falling edge of pair_count
means a new pair is read from the FIFO. Provided that external ram
clock (clk_fo_in) frequency for FIFO writing operation is set at
20 MHz and the internal clock (clk_fo_out) is 50 MHz. Therefore,
delay1 and delay2 here can be precisely measured as 0.38 s and
0.02 s. Two straight lines with arrows indicate that correct catalog
pairs (271, 278) can be selected, because their similarity scores are
both bigger than 6. The total execution time is about 0.31 ms, which
includes the initial match time 0.22 ms. Note that 1056 pairs are read
at last and then using the fomula (4np/clk_fo_in), 0.21 ms can be
obtained, which is very close to the experimental result.
In our paper, the maximum time cost can be calculated theoretically. Given the star centroid results, the complete identication time of
our algorithm mainly includes two phases, the initial match (Step A,
Step B and Step C) and the nal verication (Step D). In terms of Step
2
A, each angle separation costs about 100 clock cycles. As there are C10
angle separations among (NS=10) sensor stars, about 0.09 ms is always
needed in this process. As for Step B and Step C, they are in the parallel
processing state and we only need to calculate the time cost on Step B.
Since np is not bigger than 4500 in the worst case where up to 6 sensor
pairs are checked for identication, 0.9 ms can be obtained using the
formula (4np/clk_fo_in). As for the verication process, simple
comparisons and calculations should be applied as described in
Section 3.2.1. The maximum time cost we test is about 0.1 ms. It
reveals that the identication time is 1.09 ms in total in the worst case.
From the compilation report, 1936 registers, 1769/29,080 ( < 7%)

FPGA types, plenty of embedded memory blocks (e.g. M10K and


M20K) allow various programmable widths, like 16 bits, 32 bits and
more, which makes it possible to acquire a stars complete radial
pattern in microseconds; and they also have much shorter clock cycle
than the external ram. In this way, signicant time is saved.
4.2. Timing analysis
The pipelined identication timing is shown in Fig. 8. clk_fo_in
and clk_fo_out coincide with two separate clocks of RAM#1 and
RAM#2. c_fo_in and c_fo_out represent the input and output data
of the FIFO. (I0, J0), (I1, J1), (I2, J2)... are subsequent catalog pairs
from RAM #1. delay1 and delay2 respectively result from FIFO
operations and similarity score calculations. As indicated by straight
lines with arrows, score(I, : ) correspond to I0, I1 and score(J, : )
correspond to J0, J1 So, for a sensor pair (s1, s2), if score(I, 1) and
score(J, 2) or score(I, 2) and score(J, 1) are both bigger than , the
corresponding catalog pairs are taken as optimum candidates. Finally,
the proposed method is realized by this architecture.
It can be seen that the score calculations and comparisons of the
current catalog pair are being processed while the next catalog pair are
being read. Therefore, the total identication time is only related to the
number of catalog pairs that have been read and the clock clk_fo_in
because two components execute in a parallel state and the initial delay
(delay1+delay2) can be ignored. That is, given the total number of
output pairs np, the quantied identication time will be approximately (4np/clk_fo_in), a theoretical result. It means each catalog
pair costs time of (4/clk_fo_in) due to the transferring across the
FIFO. For example, if clk_fo_in is 20 MHz and np is 1000, the initial
delay is less than 1 s and the time cost is 0.2 ms, meaning that the
proposed architecture is highly ecient.
4.3. Implementation
The proposed hardware architecture was synthesized based on

Fig. 8. Timing analysis.

Acta Astronautica 131 (2017) 19

Y. Zhao et al.

Fig. 9. Timing simulation in ModelSim software.

correctly identied. Comparatively, the average identication time on


PC was about 9.6 ms and 0.5 ms on FPGA platform. Fig. 10 is a
captured image and the 12 numbers next to the stars are allocated
according to their brightness. The detailed identication results of six
brightest stars are listed in Table 6. The identication was conrmed
correct by comparing the resluts with those in the experimental
condition.

Table 5
Identification time of different implementations.
Algorithm

Platform

Average time cost (ms)

Polestar algorithm
Modied triangle algorithm
The proposed algorithm
The proposed algorithm

PC
PC
PC
FPGA

85.28
16.51
9.52
0.48

5. Conclusion
ALMs, 156,373/4,567,040 ( < 4%) block memory bits and 16/150
(11%) DSP Blocks are primarily needed. There should be 60% memory
block resources available when the table R is also included. Apparently,
the proposed algorithm requires suciently small hardware resources.
No complicated calculations are involved and intermediate data hardly
take space as the whole process is pipelined. Such stability and
eciency is due to the proposed parallel architecture.

For the purpose of a real-time and highly robust star identication


algorithm implemented in high-dynamic star sensors, a novel synthetic-radial-pattern-based algorithm was proposed in this paper. We
rstly developed an analytical model to demonstrate the eciency of
our algorithm compared with conventional radial algorithms. The
algorithm was then described both in software and FPGA implementation details. Software simulations have demonstrated that the proposed
algorithm was highly ecient, robust and less sensitive to false stars.
The resource report and timing analysis strongly support the feasibility
of the proposed hardware implementation strategy. The successful
identication of real star images also demonstrates the capability in
actual applications. Especially, the time cost less than 1 ms indicates
the implementation can well meet the real-time requirements of highdynamic star sensors. For a future study, we will continue improving
the hardware performances adapting to various noisy conditions, and
the proposed algorithm will soon be applied into star sensors for a true
validation.

4.4. Comparison
Since the modied triangle algorithm [5] has been commonly and
successfully veried in space missions and similarities exist between
our algorithm and the polestar algorithm, there is a comparison among
them on dierent platforms, PC and FPGA. They were applied to
identify 500 randomly simulated star images. The maximum error of
the angular distance between a measured star pair and their corresponding catalog pair was 30 and the magnitude error was 0.3Mv. All
images were correctly identied by either method or platform. Time
costs for each kind of implementation are shown in Table 5. It indicates
that the polestar algorithm is very time-consuming and the modied
triangle algorithm also needs 16.51 ms. In contrast, each image costs
about 9.52 ms on average of our algorithm. Moreover, the time cost is
0.48 ms on average and the speedup is close to 20 when our method is
implemented on FPGA. The maximum and the minimum time cost are
0.72 ms and 0.21 ms respectively. Commonly, the time cost will not
exceed 1 ms.
We have also considered about translating the polestar algorithm or
the modied triangle algorithm into hardware descriptions but met
obvious obstacles. That is, the verication scheme of the polestar
algorithm is not easy to implement. If we choose to remain such
candidates, each of whom gets a similarity score above 6, there are
often over 100 candidates for each polestar. Faster verication
strategies can be found in [8,19], where the star-pair table and the
neighboring star table are applied respectively. Neither the time cost
nor the resource cost, if it is implemented in FPGA, will be better than
that in fast sequential processors. In terms of the triangle algorithm, it
is not appropriate because parallel modules cannot be extracted.

Acknowledgements
This work is in part supported by the National Natural Science

4.5. Identication tests using real star images


The proposed algorithm was applied to identify 350 real star images
captured by a CMOS star sensor at the Xing Long Astronomical
Observatory in Hebei province of China. The parameters of the sensor
are the same as in Table 1. All of them taken on several nights were

Fig. 10. Identication of a real star image.

Acta Astronautica 131 (2017) 19

Y. Zhao et al.

Table 6
Identification result of six brightest stars.
Sensor star index

1
2
3
4
5
6
a

Sensor star centroids


x

1535.768
1261.621
617.257
1874.411
1195.424
1667.022

900.979
1001.902
1918.648
719.263
382.706
928.215

Total gray scalea

Catalog star index

Right ascension (deg)

Declination (deg)

Star magnitude (Mv)

9113
5016
3345
1619
1318
1078

1810
1524
1525
1815
1808
1812

297.8521
296.5650
296.8470
298.8283
293.5224
298.5619

8.8684
10.6133
18.5343
6.4068
7.3789
8.4614

0.9
2.8
3.8
3.9
4.6
4.9

Total gray scale indicates the brightness of the sensor star.


441456.
[10] D.D. Needleman, J.P. Alstad, P.C. Lai, H.M. Elmasri, Fast access and low memory
star pair catalog for star pattern identication, J. Guid. Control Dyn. 33 (5) (2010)
13961403.
[11] C. Padgett, K. Kreutz-Delgado, A grid algorithm for autonomous star identication,
IEEE Trans. Aerosp. Electron. Syst. 33 (1) (1997) 202213.
[12] E. Silani, M. Lovera, Star identication algorithms: novel approach and comparison
study, IEEE Trans. Aerosp. Electron. Syst. 42 (4) (2006) 12751288.
[13] X. Wei, G. Zhang, J. Jiang, Star identication algorithm based on log-polar
transform, AIAA J. Aerosp. Comput. Inf. Commun. 6 (8) (2009) 483490.
[14] C. Padgett, K. Kreutz-Delgado, S. Udomkesmalee, Evaluation of star identication
techniques, J. Guid. Control Dyn. 20 (2) (1997) 259267.
[15] J. Hong, J.A. Dickerson, Neural-network-based autonomous star identication
algorithm, J. Guid. Control Dyn. 23 (4) (2000) 728735.
[16] P. Alvelda, A.M. San Martin, Advances in Neural Information Processing Systems
1, NIPS, Neural Network Star Pattern Recognition for Spacecraft Attitude
Determination and Control, in: D.S. Touretzky (Ed.), Morgan Kaufmann Publishers
Inc., San Francisco, CA, 1989, pp. 314322.
[17] Hye-Young Kim, J.L.Junkins, Self-organizing guide star selection algorithm for star
trackers: Thinning method, in: Aerospace Conference Proceedings, IEEE, vol. 5,
2002, pp. 22752283.
[18] V. Cyclone, Device Handbook, Altera Inc., San Jose, California, USA, 2015.
[19] Y. Zhao, X. Wei, J. Li, G. Wang, Star identication algorithm based on K-L
transformation and star walk formation, IEEE Sens. J. 16 (13) (2016) 52025210.

Foundation of China (Grant no. 61378052).


References
[1] R.W.H.V. Bezooijen, True-sky demonstration of an autonomous star tracker, in:
Proceedings of SPIE: The International Society for Optical Engineering, vol.
2221(1), 1994, pp. 156168.
[2] K. Ho, A survey of algorithms for star identication with low-cost star trackers, Acta
Astronaut. 73 (2012) 156163.
[3] G.J. Zhang, X.G. Wei, J. Jiang, Full-sky autonomous star identication based on
radial and cyclic features of star pattern, Image Vis. Comput. 26 (7) (2008)
891897.
[4] C. Liebe, Pattern recognition of star constellations for spacecraft applications, IEEE
Aerosp. Electron. Syst. Mag. 8 (1) (1993) 3139.
[5] G.J. Zhang, X.G. Wei, J. Jiang, Star map identication based on a modied triangle
algorithm, Acta Aeronaut. Astronaut. Sinca 27 (6) (2006) 11501154.
[6] D. Mortari, M.A. Samaan, C. Bruccoleri, J.L. Junkins, The pyramid star identication technique, Navigation 51 (3) (2004) 171183.
[7] D. Mortari, B. Neta, K-vector range searching techniques, Adv. Astronaut. Sci. 105
(1) (2000) 449464.
[8] J. Li, X. Wei, G. Zhang, Iterative algorithm for autonomous star identication,
IEEE Trans. Aerosp. Electron. Syst. 51 (1) (2015) 536547.
[9] M. Kolomenkin, S. Pollak, I. Shimshoni, M. Lindenbaum, Geometric voting
algorithm for star trackers, IEEE Trans. Aerosp. Electron. Syst. 44 (2) (2008)

You might also like