- Star database manipulation and projections
- Gnomonic projection
- (planned) Orthogonal projection
- (planned) Stereographic projection
- Quaternion Rotation
- Image identification using "blur and prick" method
- (planned) Star object follow for realtime tracking
This is a low computation high memory access operation.
Start with a raw image of the stars taken by the sat:
image is a render from sat-sight-view
Increase the raw image contrast and calculate a gaussian blur over the image.
With a known database of star positions "pinprick" the image with their locations. In other words, access the pixels that should contain a star if the sat was oriented in a particular direction. Take the values found and sum them to get a general "goodness" value for how well the image conforms to the star locations. The stars that are more in the correct position will have a higher value as they are more near the center of the blurred star. The stars further from the correct position will have a lower value.
This can be done in one of two ways:
- With a predefined list of pixel coordinate values and a list of their respective orientation vectors we pinprick the original blurred image with these values until we find a orientation vector that has the highest match. Depending on the size and resolution (the distance between the vectors) of our database we can get an approximant orientation.
- Pros: Extremely fast memory intensive operation.
- Cons: Only an approximation based
- With a database of star galactic longitude and latitude points, pick a random orientation and project these points onto a 2D plane. This would be the supposed star locations that the sat would see if if it was oriented in this way. Use these pixel values to pinprick the original blurred image as before. Loop trough orientations to find the one with the highest goodness value.
- Pros: Dynamic ability to generate star positions
- Cons: Compute intensive
Once a vector has been established a tracking algo can be used to keep a lock on the orientation (planned)