Skip to content

Development of SPEL - Open Star Tracker (SOST) - Software tested in our nanosatellites SUCHAI-2/3 AND PlantSAT

License

Notifications You must be signed in to change notification settings

spel-uchile/Star_Tracker

Repository files navigation

SPEL - Open Star Tracker (SOST)

1.- Overview

This GitHub offers to the CubeSat research community an open-source Star Tracker (STT), developed at the Space and Planetary Exploration Laboratory (SPEL) at the University of Chile. We used this development in the first Chilean satellite swarm made up of SUCHAI-2/3 and PlantSAT.
SUCHAI-1 was the first NanoSatellite developed by the University of Chile at SPEL. Launched on June 23 (2017), this satellite worked 457 days on space. On April 1, 2022, the second batch of satellites was launched: the SUCHAI-2/3 and PlantSAT. We tested the pointing capabilities of these new satellites and learned how to develop a robust attitude determination and control system (ADCS) through in-house sensors and algorithms development.
---> Links of interest:

The image shows the STT payload being integrated into the SUCHAI-2 nanosatellite. The RPi Zero W is attached following the PC-104 standard, with the RPi V2.1 camera and the associated electronics to make it work properly.

2.- Description

  • This GitHub contains a fully functional STT you can test on a Linux PC. Nevertheless, the main idea is to use it with a Raspberry Pi (RPi) and its camera (V2.1) in an autonomous way.
  • This code is currently working on Python 3.10. All the code and the necessary files are in the RPi folder.
  • This GitHub is free and open to everyone interested in using it, especially researchers working on CubeSats. We encourage interested researchers to help this project grow!

3.- Installation instructions

  1. Two open software commonly used in the astronomy field are the base of this STT code: Source Extractor and Match. To properly use this STT, you first need to install these two software. In a Linux computer, you can do it using the bash script provided in RPi/linux_installer.sh:
cd RPi
sh linux_installer.sh

In our implementation, we use version 2.19.5 of Source Extractor and version 0.14 of Match. However, using newer version of Source Extractor should not be a problem for the algorithm.

  1. For memory reasons, star catalogs are compressed (tar.gz). You can decompress it using the batch script in RPi/extract_cat.sh:
cd RPi
sh extract_cat.sh
  1. This STT software uses the following Python libraries:
  • argparse
  • astropy
  • itertools
  • multiprocessing
  • numpy
  • os
  • pillow
  • platform
  • re
  • subprocess
  • time

Most of them come by default in Python, and the remaining can be installed by typing in the terminal:

python3 -m pip install astropy pillow

4.- Use instructions

This STT software works by comparing the grabbed picture with a stellar catalog. The different catalog segments can be separated by 5, 10, or 15 degrees. The larger the catalog separation, the faster the algorithm works, but the less accurate the solution. You can choose the catalog separation when you run the code.
You can test this STT software in three different ways:

  • Directly grabbing pictures with the RPi and the V2.1 camera.
  • Using the sample images previously grabbed with the RPi V2.1 camera.
  • Using the sample images from the satellite STEREO HI-1.

4.1.- Taking pictures with the RPi and the V2.1 camera

The syntax is the following:

python3 stt.py direct_rpi <catalog-division>

Catalog division can be 5, 10 or 15. This will acquire a picture with a predefined exposure time of 800 ms. If you want to set your own exposure time, you can try:

python3 stt.py direct_rpi <catalog-division> --exptime <exposure-time>

The exposure time is in ms.

4.2.- Using RPi sample images

The syntax is the following:

python3 stt.py sample_rpi <catalog-division>

Catalog division can be 5, 10 or 15. This will apply the algorithm over the first picture in the sample images. If you want to try another picture, you can try:

python3 stt.py sample_rpi <catalog-division> --npic <picture-number>

The argument picture-number ranges from 1 to 50.

4.3.- Using STEREO sample pictures

This STT software can also be tested with pictures from the HI-1 detector from the STEREO mission. This procedure proves that different cameras can be used with this algorithm, and it is not attached to particular hardware.
The STEREO HI-1 pictures can have different processing levels. These levels are well explained in STEREO HI data processing documentation. We use two different image format:

There are examples of pictures of both kinds in folder RPi/Sample_images/STEREO
To execute the code, the syntax is the following:

python3 stt.py sample_stereo <catalog-division>

This will apply the algorithm over the first picture in the sample images. Like the previous cases, catalog division can be 5, 10 or 15. The attitude information can be read from the STEREO image header. Several programs can be used for it, for example, DS9.
If you want to test another picture, you can try:

python3 stt.py sample_stereo <catalog-division> --npic <picture-number>

In this case, the argument picture-number ranges from 1 to 10.

5.- Research

This STT is deeply tested with theoretical analysis and ground-based night-sky pictures. The tools, algorithms, methods, and results are fully described in my paper in IEEE ACCESS. If you are using this open project in your research or development, please cite it using the following BibTeX:

@article{gutierrez2020introducing,
  title     = {Introducing SOST: An Ultra-Low-Cost Star Tracker Concept Based on a Raspberry Pi and Open-Source Astronomy Software},
  author    = {Guti{\'e}rrez, Samuel T and Fuentes, C{\'e}sar I and D{\'\i}az, Marcos A},
  journal   = {IEEE Access},
  volume    = {8},
  pages     = {166320--166334},
  year      = {2020},
  publisher = {IEEE}
}

6.- Questions or comments?

Contact: Samuel T. Gutiérrez.
Postdoc at SPEL group.
PhD in Electrical Engineering at the University of Chile, Santiago, Chile.
[email protected]


README updated September 8, 2024, by SGR.