CubeSat Cloud

Hi there!

My name is Obul. I did PhD in Cloud Computing and Big Data from University of Florida. My passions include Cloud, Big Data, Data Science, Linux and Open Source. I have about 8 years of experience with various Cloud services and Big Data tools. Cloud Computing, Big Data and Machine Learning are revolutionizing and redefining “Computing Technology” as we know it. Like every new technology, these technologies are undergoing tremendous change. I am working on series of posts about cutting edge cutting edge stuff in Cloud, Big Data and Data Science. Here is the first one about my PhD, “CubeSat Cloud”.

Here is the elevator pitch for my PhD. In a sense, today's satellite systems are like the computing systems in 1970. Satellites are monolithic, weigh 1000’s of pounds, fill up a room, need to be created from scratch, require 100’s of million dollars (per satellite), rocket launchers need to be modified to suit custom needs of satellites, will take 5 years from concept to reality, uses decade old technologies to minimize the high risk, can not be easily experimented with, etc ., Small satellites like CubeSats have a stringent weight (1 Kg), volume (1 Liter), and computer bus specification (Pc/104). As a result, they can be mass manufactured like today’s computer systems. They can be built at fraction of a price (typically around few thousands of dollars), can be assembled in a span of weeks, can be launched using a standard rocket launcher, can be easily experimented with, etc ., NASA, SpaceX, Boeing, and more companies are looking to small satellites as a potential future of satellite industry. However, the small satellites they lack the computation and communication capabilities of the large satellites and hence are limited to trivial missions. CubeSat Cloud aims to enable small satellites to execute serious missions that require large amounts of compute and communication capabilities.

“CubeSat Cloud” is a framework for distributed storage, processing and communication of remote sensing data on small satellite cluster. A CubeSat is a class of very small satellites that are roughly of the size of a base ball. Architecture of CubeSat Cloud is shown in figure below. It consists of space and ground segments. Space segment is a CubeSat Cluster, with a radius of about 25–100 km. Space segment consists of Sensor nodes and Worker nodes inter-connected using high speed communication links. Worker nodes are CubeSats with storage, processing, communication and other standard subsystems. In addition to the standard subsystems, Sensor CubeSat has sensing subsystem. Sensor nodes act as Master of the cluster while orchestrating remote sensing missions. Ground segment is composed of Server and several ground stations. CubeSat to CubeSat communication links are short distance, reliable, directional, low power and high speed. CubeSats to ground station communication links are long distance, high power, low speed and unreliable. Each CubeSat is connected to a ground station. Ground stations are connected to the Server via the Internet. Ground stations act as relays between Server and CubeSats.

CubeSat Cloud

CubeSat Cloud uses “CubeSat Distributed File System” for storing remote sensing data in distributed fashion on the cluster. CubeSat Distributed File System splits the large size remote sensing data in chunks and distributes them to the worker nodes in the cluster. Metadata consisting of file to chunk mapping and chunk to worker node mapping is stored with Master node. For processing distributed data CubeSat Cloud uses CubeSat MapMerge. Worker nodes process the chunks stored with them and store the results obtained on the local file system. Once the chunks are processed, they are downlinked to Server using CubeSat Torrent. Server stitches the partial solutions into full solution. Component and link failures are treated as norm instead of exceptions. Failures are detected using Heartbeat mechanism and system is tolerant to component and link failures. CubeSat Cloud implements several novel features copy-on-transmit and linear block source coding with torrent to reduce consumption of scarce resources like power and bandwidth.

For simulating CubeSat Cloud on I created, a testbed using Raspberry Pis and the code is written using Python-twisted, an event based asynchronous network programming framework. Simulation results indicate that CubeSat MapMerge and CubeSat Torrent, with cluster sizes in range of 5–25 CubeSats, enables 4.75–23.15 times faster (compared to a single CubeSat) processing and downlinking of large sized remote sensing data. All this speed is achieved at almost negligible bandwidth and memory overhead (<1%). CubeSat Cloud can speed up remote sensing missions nearly by a factor of size of cluster.