Skip to main content
Log in

An Accurate and Efficient Gaussian Fit Centroiding Algorithm for Star Trackers

  • Published:
The Journal of the Astronautical Sciences Aims and scope Submit manuscript

Abstract

This paper presents a novel centroiding algorithm for star trackers. The proposed algorithm, which is referred to as the Gaussian Grid algorithm, fits an elliptical Gaussian function to the measured pixel data and derives explicit expressions to determine the centroids of the stars. In tests, the algorithm proved to yield accuracy comparable to that of the most accurate existing algorithms, while being significantly less computationally intensive. Hence, the Gaussian Grid algorithm can deliver high centroiding accuracy to spacecraft with limited computational power. Furthermore, a hybrid algorithm is proposed in which the Gaussian Grid algorithm yields an accurate initial estimate for a least squares fitting method, resulting in a reduced number of iterations and hence reduced computational cost. The low computational cost allows to improve performance by acquiring the attitude estimates at a higher rate or use more stars in the estimation algorithms. It is also a valuable contribution to the expanding field of small satellites, where it could enable low-cost platforms to have highly accurate attitude estimation.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4

Similar content being viewed by others

References

  1. Wertz, J.R.: Spacecraft Attitude Determination and Control. D. Reidel Publishing Company, Dordrecht, Holland (1978). ISBN 90-277-0959-9

    Book  Google Scholar 

  2. Vandersteen, J.: Observation and estimation for space applications. PhD thesis, KU Leuven (2012)

    Google Scholar 

  3. Liebe, C.C.: Accuracy performance of star trackers - a tutorial. IEEE Trans. Aerosp. Electron. Syst. 38(2) (2002)

  4. Stone, R.C.: A Comparison of digital centering algorithms. Astron. J. 97(4) (1989)

  5. Vyas, A., Roopashree, M., Prasad, B.R.: Improved iteratively weighted centroiding for accurate spot detection in laser guide star based Shack Harmann Sensor. Proc. SPIE 7588 (2010)

  6. Auer, L., Altena, W.V.: Digital image centering II. Astron. J. 83(5) (1978)

  7. C. F. A, G. W. H. B, B. E. B.: Determination of Centroid of CCD Star Images

  8. Winick, K.A.: Cramér-Rao lower bounds on the performance of charge-coupled-device optical position estimators. Opt. Soc. Am. 3(11) (1986)

  9. Hancock, B.R., Stirbl, R.C., Cunningham, T.J., Pain, B., Wrigley, C.J., Ringold, P.G.: CMOS Active Pixel Sensor Specific Performance Effects on Star Tracker/Imager Position Accuracy, No. 43 (2001)

  10. Levenberg, K.: A Method for the solution of certain non-linear problems in least squares. Q. Appl. Math. 2, 164–168 (1944)

    MathSciNet  MATH  Google Scholar 

  11. Crassidis, J., Junkins, J.: Optimal Estimation of Dynamic Systems: Second Edition. Chapman & Hall/CRC Press, Boca Raton, FL (2012)

    Google Scholar 

Download references

Acknowledgments

Tjorven Delabie is funded by the Agency for Innovation by Science and Technology in Flanders (IWT).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Tjorven Delabie.

Appendix

Appendix

In this Appendix, the expressions to calculate the values for A i, j and B i, j are given for the 3×3, 5×5, and 7×7 pixel window sizes (Table 7). The expressions are a function of the weights w i used in the cost function (Table 7). These weights are assigned as follows:

Table 7 Weights grid

3×3 Pixel Window

The values for A i, j and B i, j for a 3×3 pixel window are calculated as follows:

$$\begin{array}{@{}rcl@{}} B_{0} &=& 0\\ B_{1} &=& 1\\ B_{-1} &=& -1\\ A_{0} &=& 4\\ A_{1} &=& 2\\ A_{-1} &=& 2\\ C_{0} &=& 2\\ C_{1} &=& -1\\ C_{-1} &=&-1\\ D &=& 6 \end{array} $$

5×5 Pixel Window

The values for A i, j and B i, j for a 5×5 pixel window are calculated as follows:

$$\begin{array}{@{}rcl@{}} A_{0} &= & 2(w_{0}w_{1}w_{2}+w_{0}w_{-1}w_{-2})-4w_{0}w_{1}w_{-1} -18(w_{0}w_{1}w_{-2}+w_{0}w_{-1}w_{2})\\ &&-64w_{0}w_{2}w_{-2}\\ A_{1} &=& 2w_{0}w_{-1}w_{1}+6w_{1}w_{-1}w_{-2}-4w_{0}w_{1}w_{2}+12w_{0}w_{1}w_{-2}-18w_{1}w_{2}w_{-1}\\&&-48w_{1}w_{2}w_{-2}\\ A_{2} &=& 2w_{0}w_{1}w_{2}+6w_{0}w_{2}w_{-1}+12(w_{1}w_{2}w_{-1}+w_{2}w_{-1}w_{-2})+32w_{0}w_{2}w_{-2}\\&&+36w_{1}w_{2}w_{-2}\\ A_{-1} &=& 2w_{0}w_{1}w_{-1}+6w_{1}w_{2}w_{-1}-4w_{0}w_{-1}w_{-2}+12w_{0}w_{2}w_{-1}-18w_{1}w_{-1}w_{-2}\\&&-48w_{2}w_{-1}w_{-2}\\ A_{-2} &=& 2w_{0}w_{-1}w_{-2}+6w_{0}w_{-2}w_{1}+12(w_{1}w_{2}w_{-2}+w_{1}w_{-1}w_{-2})+32w_{0}w_{2}w_{-2}\\&&+36w_{2}w_{-1}w_{-2}\\ B_{0} &=& 3(w_{0}w_{1}w_{2}-w_{0}w_{-1}w_{-2})+9(w_{0}w_{1}w_{-2}-w_{0}w_{-1}w_{2})\\ B_{1} &=& -w_{0}w_{1}w_{-1}-4w_{0}w_{1}w_{2}-9(w_{1}w_{2}w_{-1}+w_{1}w_{-2}w_{-1})-12w_{0}w_{1}w_{-2}\\ B_{2} &=& w_{0}w_{1}w_{2}-3w_{0}w_{-1}w_{2}-18(w_{1}w_{-2}w_{2}+w_{-1}w_{-2}w_{2})-32w_{0}w_{2}w_{-2}\\ B_{-1} &=& w_{0}w_{1}w_{-1}+4w_{0}w_{-1}w_{-2}+9(w_{1}w_{2}w_{-1}+w_{1}w_{-1}w_{-2})+12w_{0}w_{2}w_{-1}\\ B_{-2} &=& -w_{0}w_{-1}w_{-2}+3w_{0}w_{1}w_{-2}+18(w_{1}w_{2}w_{-2}+w_{2}w_{-1}w_{-2})+32w_{0}w_{2}w_{-2} \end{array} $$
$$\begin{array}{@{}rcl@{}} C_{0} &=& -32 \ast w_{2}\ast w_{-2}-9 \ast(w_{1}\ast w_{-2}+w_{2} \ast w_{-1})+w_{-1}\ast w_{-2}+w_{1}\ast w_{2}\\&&-2\ast w_{1}\ast w_{-1}\\ C_{1} &=& -2 \ast w_{0} \ast w_{2}+w_{0} \ast w_{-1}+6 \ast w_{0} \ast w_{-2}-9 \ast w_{2} \ast w_{-1}-24 \ast w_{2} \ast w_{-2}\\&&+3 \ast w_{-1} \ast w_{-2}\\ C_{2} &=& w_{0} \ast w_{1}+3 \ast w_{0} \ast w_{-1}+16 \ast w_{0} \ast w_{-2}+18 \ast w_{1} \ast w_{-2}\\&&+6 \ast (w_{1} \ast w_{-1}+w_{-1} \ast w_{-2})\\ C_{-1} &=& w_{0} \ast w_{1}+6 \ast w_{0} \ast w_{2}-2 \ast w_{0} \ast w_{-2}+3 \ast w_{1} \ast w_{2}-9 \ast w_{1} \ast w_{-2}\\&&-24 \ast w_{2} \ast w_{-2}\\ C_{-2} &=& 18*w_{2}*w_{-1}+6*(w_{1}*w_{-1}+w_{1}*w_{2})+16*w_{0}*w_{2}+w_{0}*w_{-1}\\&&+3*w_{0}*w_{1}\\ D &=& -128 \ast w_{0} \ast w_{2} \ast w_{-2}-72 \ast w_{2} \ast (w_{1} \ast w_{-2}+w_{-1} \ast w_{-2})\\ &&-18 \ast (w_{0} \ast w_{1} \ast w_{-2}+w_{2} \ast w_{-1} \ast w_{0}+w_{1} \ast w_{-2} \ast w_{-1}+w_{1} \ast w_{2} \ast w_{-1})\\ &&-2 \ast w_{0} \ast (w_{1} \ast w_{2}+w_{1} \ast w_{-1}+w_{-1} \ast w_{-2}) \end{array} $$

7×7 Pixel Window

The values for A i, j and B i, j for a 7×7 pixel window are calculated as follows:

$$\begin{array}{@{}rcl@{}} A_{-3} &=& 12w_{0}w_{1}w_{-3}+60w_{0}w_{2}w_{-3}+162w_{0}w_{3}w_{-3}+6w_{0}w_{-1}w_{-3}\\&&+12w_{0}w_{-2}w_{-3}+20w_{1}w_{2}w_{-3}+96w_{1}w_{3}w_{-3}+32w_{1}w_{-1}w_{-3}\\&&+36w_{1}w_{-2}w_{-3}+30w_{2}w_{3}w_{-3}+90w_{2}w_{-1}w_{-3}+80w_{2}w_{-2}w_{-3}\\ &&+192w_{3}w_{-1}w_{-3}+150w_{3}w_{-2}w_{-3}+2w_{-1}w_{-2}w_{-3}\\ A_{-2} &=& 2w_{0}w_{-1}w_{-2}-18w_{0}w_{-2}w_{-3}+12w_{1}w_{2}w_{-2}+60w_{1}w_{3}w_{-2}\\&&+12w_{1}w_{-1}w_{-2}-48w_{1}w_{-2}w_{-3}+20w_{2}w_{3}w_{-2}+36w_{2}w_{-1}w_{-2}\\&&-100w_{2}w_{-2}w_{-3}+80w_{3}w_{-1}w_{-2}-180w_{3}w_{-2}w_{-3}-4w_{-1}w_{-2}w_{-3}\\ &&+6w_{0}w_{1}w_{-2}+32w_{0}w_{2}w_{-2}+90w_{0}w_{3}w_{-2}\\ A_{-1} &=&2w_{0}w_{1}w_{-1}+12w_{0}w_{2}w_{-1}+36w_{0}w_{3}w_{-1}-4w_{0}w_{-1}w_{-2}-18w_{0}w_{-1}w_{-3}\\&&+6w_{1}w_{2}w_{-1}+32w_{1}w_{3}w_{-1}-18w_{1}w_{-1}w_{-2}-64w_{1}w_{-1}w_{-3}\\ &&+12w_{2}w_{3}w_{-1}-48w_{2}w_{-1}w_{-2}-150w_{2}w_{-1}w_{-3}-100w_{3}w_{-1}w_{-2}\\&&-288w_{3}w_{-1}w_{-3}+2w_{-1}w_{-2}w_{-3}\\ A_{0} &=& 2w_{0}w_{1}w_{2}+12w_{0}w_{1}w_{3}-4w_{0}w_{1}w_{-1}-18w_{0}w_{1}w_{-2}-48w_{0}w_{1}w_{-3}\\&&+6w_{0}w_{2}w_{3}-18w_{0}w_{2}w_{-1}-64w_{0}w_{2}w_{-2}-150w_{0}w_{2}w_{-3}-48w_{0}w_{3}w_{-1}\\&&-150w_{0}w_{3}w_{-2}-324w_{0}w_{3}w_{-3}+2w_{0}w_{-1}w_{-2}+12w_{0}w_{-1}w_{-3}\\&&+6w_{0}w_{-2}w_{-3}\\ A_{1} &=& 36w_{0}w_{1}w_{-3}+2w_{1}w_{2}w_{3}-18w_{1}w_{2}w_{-1}-48w_{1}w_{2}w_{-2}-100w_{1}w_{2}w_{-3}\\&&-64w_{1}w_{3}w_{-1} -150w_{1}w_{3}w_{-2}-288w_{1}w_{3}w_{-3}+6w_{1}w_{-1}w_{-2}\\&&+32w_{1}w_{-1}w_{-3}+12w_{1}w_{-2}w_{-3}-4w_{0}w_{1}w_{2} -18w_{0}w_{1}w_{3}+2w_{0}w_{1}w_{-1}\\&&+12w_{0}w_{1}w_{-2} \end{array} $$
$$\begin{array}{@{}rcl@{}} A_{2} &=& 2w_{0}w_{1}w_{2}-18w_{0}w_{2}w_{3}+6w_{0}w_{2}w_{-1}+32w_{0}w_{2}w_{-2}+90w_{0}w_{2}w_{-3}\\&&-4w_{1}w_{2}w_{3} +12w_{1}w_{2}w_{-1}+36w_{1}w_{2}w_{-2}+80w_{1}w_{2}w_{-3}-48w_{2}w_{3}w_{-1}\\&&-100w_{2}w_{3}w_{-2}-180w_{2}w_{3}w_{-3} +12w_{2}w_{-1}w_{-2}+60w_{2}w_{-1}w_{-3}\\&&+20w_{2}w_{-2}w_{-3}\\ A_{3} &=& 6w_{0}w_{1}w_{3}+12w_{0}w_{2}w_{3}+12w_{0}w_{3}w_{-1}+60w_{0}w_{3}w_{-2}+162w_{0}w_{3}w_{-3}\\&&+2w_{1}w_{2}w_{3}+32w_{1}w_{3}w_{-1}+90w_{1}w_{3}w_{-2}+192w_{1}w_{3}w_{-3}+36w_{2}w_{3}w_{-1}\\&&+80w_{2}w_{3}w_{-2}+150w_{2}w_{3}w_{-3}+20w_{3}w_{-1}w_{-2}+96w_{3}w_{-1}w_{-3}\\&&+30w_{3}w_{-2}w_{-3}\\ B_{-3} &=& 6w_{0}w_{1}w_{-3}+60w_{0}w_{2}w_{-3}+243w_{0}w_{3}w_{-3}-3w_{0}w_{-1}w_{-3}\\&&-12w_{0}w_{-2}w_{-3}+30w_{1}w_{2}w_{-3}+192w_{1}w_{3}w_{-3}-18w_{1}w_{-2}w_{-3}\\&&+75w_{2}w_{3}w_{-3}+45w_{2}w_{-1}w_{-3}+192w_{3}w_{-1}w_{-3}+75w_{3}w_{-2}w_{-3}\\ &&-3w_{-1}w_{-2}w_{-3}\\ B_{-2} &=& 3w_{0}w_{1}w_{-2}+32w_{0}w_{2}w_{-2}+135w_{0}w_{3}w_{-2}-w_{0}w_{-1}w_{-2}+27w_{0}w_{-2}w_{-3}\\&&+18w_{1}w_{2}w_{-2}+120w_{1}w_{3}w_{-2}+48w_{1}w_{-2}w_{-3}+50w_{2}w_{3}w_{-2}\\&&+18w_{2}w_{-1}w_{-2}+50w_{2}w_{-2}w_{-3}+80w_{3}w_{-1}w_{-2}+8w_{-1}w_{-2}w_{-3}\\ B_{-1} &=& w_{0}w_{1}w_{-1}+12w_{0}w_{2}w_{-1}+54w_{0}w_{3}w_{-1}+4w_{0}w_{-1}w_{-2}+27w_{0}w_{-1}w_{-3}\\&&+9w_{1}w_{2}w_{-1}+64w_{1}w_{3}w_{-1}+9w_{1}w_{-1}w_{-2}+64w_{1}w_{-1}w_{-3}\\&&+30w_{2}w_{3}w_{-1}+75w_{2}w_{-1}w_{-3}-50w_{3}w_{-1}w_{-2}-5w_{-1}w_{-2}w_{-3}\\ B_{0} &=& -15w_{0}w_{-2}w_{-3}+3w_{0}w_{1}w_{2}+24w_{0}w_{1}w_{3}+9w_{0}w_{1}w_{-2}+48w_{0}w_{1}w_{-3}\\&&+15w_{0}w_{2}w_{3}-9w_{0}w_{2}w_{-1}+75w_{0}w_{2}w_{-3}-48w_{0}w_{3}w_{-1}-75w_{0}w_{3}w_{-2}\\&&-3w_{0}w_{-1}w_{-2}-24w_{0}w_{-1}w_{-3}\\ B_{1} &=& -75w_{1}w_{3}w_{-2}-9w_{1}w_{-1}w_{-2}-64w_{1}w_{-1}w_{-3}-30w_{1}w_{-2}w_{-3}-4w_{0}w_{1}w_{2}\\&&-27w_{0}w_{1}w_{3}-w_{0}w_{1}w_{-1}-12w_{0}w_{1}w_{-2}-54w_{0}w_{1}w_{-3}+5w_{1}w_{2}w_{3}\\&&-9w_{1}w_{2}w_{-1}+50w_{1}w_{2}w_{-3}-64w_{1}w_{3}w_{-1}\\ B_{2} &=& w_{0}w_{1}w_{2}-27w_{0}w_{2}w_{3}-3w_{0}w_{2}w_{-1}-32w_{0}w_{2}w_{-2}-135w_{0}w_{2}w_{-3}\\&&-8w_{1}w_{2}w_{3}-18w_{1}w_{2}w_{-2}-80w_{1}w_{2}w_{-3}-48w_{2}w_{3}w_{-1}-50w_{2}w_{3}w_{-2}\\&&-18w_{2}w_{-1}w_{-2}-120w_{2}w_{-1}w_{-3}-50w_{2}w_{-2}w_{-3}\\ B_{3} &=& 3w_{0}w_{1}w_{3}+12w_{0}w_{2}w_{3}-6w_{0}w_{3}w_{-1}-60w_{0}w_{3}w_{-2}-243w_{0}w_{3}w_{-3}\\&&+3w_{1}w_{2}w_{3}-45w_{1}w_{3}w_{-2}-192w_{1}w_{3}w_{-3}+18w_{2}w_{3}w_{-1}-75w_{2}w_{3}w_{-3}\\&&-30w_{3}w_{-1}w_{-2}-192w_{3}w_{-1}w_{-3}-75w_{3}w_{-2}w_{-3} \end{array} $$

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Delabie, T., Schutter, J.D. & Vandenbussche, B. An Accurate and Efficient Gaussian Fit Centroiding Algorithm for Star Trackers. J of Astronaut Sci 61, 60–84 (2014). https://doi.org/10.1007/s40295-015-0034-4

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s40295-015-0034-4

Keywords

Navigation