ThomasAlbin / Astroniz-YT-Tutorials

Repository of my Space Science with Python YT tutorial series
MIT License
143 stars 22 forks source link

Build a Star Tracker for CubeSat ADCS with me #75

Open manuel-imboden opened 6 days ago

manuel-imboden commented 6 days ago

Hi Thomas

First off, I very much appreciate what you are doing with your channel.

I set out to build an open source CubeSat a few years ago and earlier this year, I have started a YT channel to document the progress

It's definitely early days, but progress has been steady and folks seem to like the project :) Here is the repo on Codeberg.

One of the big ticket items down the road in terms of complexity will be ADCS. For the determination part, using a star tracker is a typical approach (here are a few commercial ones to peruse).

As you can imagine, these are supremely expensive. A major goal of mine is to keep cost low and accessibility high. So I was wondering if you would be interested in partnering up on this. I'd feel right at home with the hardware aspects, but when it comes to software, I'm a noob.

Here is how i think these work: At the core of the thing, a plate solver would need to run sporadically and ingest one or multiple images (that may or may not have 'bad' data in them that needs to be accounted for, like motion blur, optical flares, the sun or the earth), filter out start position patterns, run these patterns against a catalog of known patterns, and then, given the precise time, calculate the spacecraft's rotation in 3 axes, probably relative to earth).

Ideally, this would be written in Python or MicroPython, same as most of the CubeSats's subsystems.

I have a vague feeling that a chip like the RP2350, maybe together with a TPU accelerator, could get the job done, but that's pretty much at the edge of my knowledge.

I do think this is a really nice challenge. It's a bit of a longer-term thing as I won't be getting into ADCS until late next year, but I have been thinking about getting in touch with you about this for a while and I though I'd seize this opportunity and post here :)

Anyways, I'd love to collaborate on this. Also, we could meet up irl to discuss this further at some point as I am also a member of the Germanic accent club.

Best, Manuel

ThomasAlbin commented 6 days ago

Hey Manuel,

thank your for your detailed description. This is indeed an insane project (in a positive sense :-)).

I worked on ADCS data the other day when I was part of ESA's Rosetta team. We used these data in a side project to track dust particles around the comet. During that time I was diving a little bit into this topic and I recall some things like Star Catalogue matching (what you mentioned) and the computation of the corresponding quaternions. Which can be then used e.g., in SPICE to determine the attitude of the spacecraft w.r.t. e.g. the J2000 reference frame.

Yes, this is a major project and I'd like to work on it, move I think I have to move this to 2025, too. Let's keep in touch. I subbed to your YT channel.

By the way: I was always looking for a micro-python project. This is very promising :)!

manuel-imboden commented 5 days ago

Dude, you worked on Rosetta?! That is insane, in a very positive way!

Awesome, sounds like a nice match then and something we'd both have fun working on.

Let's talk again some time next year, and thanks for the sub =)