Open source gravitates to outer space
Two new open source projects, Space Situational Awareness and Kubesat, improve communication between satellites and help predict the path of space junk.
The 2016 movie, Hidden Figures, highlighted IBM technologists who played a crucial role in NASA’s mission to put a man on the moon. Fifty years later, IBM is still actively working to open possibilities for the new space age. The IBM Blue Tech Innovation, Space Tech Hub team, led by Naeem Altaf, IBM’s Distinguished Engineer and CTO Space Tech, designs and builds framework and technical prototypes for cubesats and space situational awareness, at times with varying degrees of collaborations from space agencies, universities, and space technology companies.
Today, the Space Tech Hub team is excited to announce two new open source projects, the Space Situational Awareness project and the Kubesat project. By open sourcing these two projects, we hope to give more people access to space tech and democratize access to space for all. Developers with an interest in space technology can help take these projects to the next level. These two containerized solutions are built with cloud-native principles and run on Red Hat OpenShift on IBM Cloud.
Space Situational Awareness (SSA)
Tens of thousands of man-made anthropogenic space objects (ASOs) orbit around the Earth. With the privatization of rocket launches, the rate at which ASOs are put into orbit is set to dramatically increase.
ASOs range in size from specks of paint that are a few centimeters in diameter to the International Space Station. A small piece of paint might not sound dangerous, but when it’s traveling at speeds around 8,000 meters per second, a collision with a satellite or other crewed vehicle has the potential to be catastrophic.
The Space Situational Awareness (SSA) project, developed by the IBM Space Tech Team, determines where ASOs are (orbit determination) and where they will be in the future (orbit prediction). Dr. Moriba Jah at the University of Texas at Austin provided the team with general mentoring in space situational awareness.
State-of-the-art methods for orbit prediction rely on physics-based models. To succeed, these models require extremely accurate data about the ASO and its environment. The trouble is, the location data we get about ASOs from terrestrial-based sensors is infrequent and noisy — and complicated further by the fact that we don’t fully understand how phenomena like space weather and atmospheric density affect ASOs.
With SSA, our approach is to improve orbit prediction using machine learning methods, not to predict orbits but to create models that learn when physical models incorrectly predict an ASO’s future location. If we were to try and build a ML model that predicted all of the orbital dynamics of an ASO we would need a lot of data to learn orbital mechanics. Physics models know quite a bit of orbital dynamics, so we only need to learn how they get it wrong.
The below shows a conjunction search, when two objects in orbit are going to get close to each other.
How SSA works: Leverage reliable data to build machine learning models
We used data provided by United States Strategic Command (USSTRATCOM) via the space-track.org website and API to build our baseline models. The data is served in the two-line element set format which is a fixed-width text format that contains the Keplerian orbital elements of an ASO at a point in time. For most ASOs in low-earth orbit (LEO), this dataset is only updated once per day, which is infrequent for a moving object.
We have built two types of baseline models:
Physics-based model for predicting orbits of ASOs in LEO. Our baseline physics model is a two-body model that uses Cowell’s formulation for modeling the perturbation in a ASO’s orbit caused by the Earth.
Machine learning model that is trained to predict the errors in the physical model’s orbit prediction. Our baseline machine learning method uses XGBoost to build a gradient-boosted regression trees model. This model is then trained on the orbit predictions of our baseline physical model to predict the error of the physics model using the USSTRATCOM data as the ground truth.
The SSA project combines the two models, using the physics model to make an orbit prediction and then using the machine learning model to estimate the error. Finally, we adjust the physical model’s prediction by the predicted error.
We employed an IBM Cloud Bare Metal Server with 16 Intel Xeon Processors; 120 GB RAM; two Nvidia Tesla V100 GPUs (each with 16GB of RAM) to run the physical models to predict the orbits of all ASOs in LEO, train ML models to learn the physics model error, and infer the future orbits of the LEO ASOs using the physics/ML combined model. We also used Cloud Object Storage to store the data from USSTRATCOM, the physics model predictions, and the final combined model predictions.
Get involved with the Space Situational Awareness project
The modeling and impact prediction of anthropogenic space objects is a defining problem of the space 2.0 age. By open sourcing a full pipeline for making orbital predictions and viewing the results, you can now join our mission to solve the “space junk” problem.
KubeSat, a cognitive autonomous framework
Startups and research groups that intend to use satellite swarms — groups of satellites that work together to accomplish specific tasks — as a modular, low-cost alternative to a more traditional larger satellite need underlying technology that can create and control the swarm, as well as support additional software for their specific goals.
Enter IBM’s KubeSat, a cognitive autonomous framework.
KubeSat is a cognitive autonomous framework designed for swarms of cube satellites that allows for the simulation and optimization of multi-satellite communications.
- simulates accurate orbital mechanics for each object via Orekit
- uses these calculations to place restrictions on communications between satellites, groundstation, and ground sensors
- incorporates NATS messaging services; optimizing their communications via reinforcement learning;
- publishes these communications to a UI
- uses Kubernetes as the core platform with microservices
This framework follows principles of swarm intelligence like awareness, autonomy, solidarity, expandability, and resiliency.
The screenshot below shows the simulation of cubesats forming clusters and interacting with ground stations.
Why we are open sourcing the KubeSat cognitive autonomous framework
Open sourcing KubeSat Cognitive Autonomous Framework democratizes the satellite swarm industry and allows for smaller operators to take advantage of space tech, particularly in the satellite swarm industry, that was previously out of reach.
Innovation in space industry can benefit from this framework. Reinforcement learning models for specific use cases can be built with this framework as the underlying software for many satellite groups. Collaboration and communications between those satellite swarms can be autonomous, allowing for swarms to integrate or separate as needed. This modular swarm creation is a key component of our software, allowing satellites utilizing our software to have the maximum impact.
We are also open sourcing the application code our team developed together with undergraduate students from Stanford University to Orekit, the base library for orbital mechanics. These extensions are used to simulate the satellite-to-satellite, satellite-to-ground station, and satellite to ground sensor communications over a meshed NATS messaging platform. A visualization layer written using Cesium and Carbon is also available
Advancing the future of space innovation
Our team is committed to advancing the future of space innovation. With the proliferation of satellites of all sizes in lower earth orbit in space, enormous amounts of data will be produced related to earth observation, to space traffic management, to space situational awareness. This data needs to be protected, analyzed, transported, and correlated.
This is where edge computing in space can provide inferencing and data filtering capabilities, basically processing of data in satellites. Next, cloud will come into the picture, to receive the aggregated and raw data via ground stations from constellation of satellites for further processing.
We’ve been busy laying the groundwork for this space technology, and now it’s your turn to help us take this work to the next level by contributing to our open source projects.
Listen to our IBM Developer podcast episode where we chat with Naeem Altaf about the latest happenings in the space industry, as well as what’s on the horizon. Topics range from recent rocket launches to the development of CubeSat satellites and beyond.