Polaris: Open Source Machine Learning for Spacecraft Operations
2021-02-20, 13:15–13:40, Prerecorded Talks

Sending a satellite to space is easier than ever before. Cubesats -- satellites the size of a loaf of bread, or even smaller -- can be built for as little as a few thousand dollars, but are capable enough to track ships, watch for earthquakes, or even observe exoplanets. "Ease of launch" does not mean "ease of operation", though; the satellites send a wealth of telemetry back to earth, and turning that flood of information into action is difficult. This difficulty only increases as fleets scale in size, from one-off research projects to hundreds of satellites providing commercial services.

Since beginning in 2018, the Polaris project has used Python's rich ecosystem to build a machine learning pipeline applicable to any mission. Polaris analyzes telemetry for each satellite, automatically extracts dependencies among its components, and displays these in an interactive, browser-based 3D graph. Spacecraft operators can navigate their graph and understand relations between their telemetry, as well as external parameters such as space weather. This gives operators another tool to monitor performance, diagnose problems, and predict satellite behaviour.

Audience: This talk is aimed at a general audience of people interested in Python, machine learning or space exploration; no expertise is assumed.

Introduction (2m)

  • Who I am
  • Outline of the talk

What's a cubesat? (3m)

  • Very small: 10cm x 10cm x 10cm (1U)
    • or units thereof: 20cm x 10cm x 10cm is 2U, 30cm x 10cm x 10cm
      is 3U, etc
  • Still capable! Miniaturization of components means you can pack
    a lot of functionality, and the relatively low orbit of most
    cubesats (~ 400km above the earth) means they're protected from
    much of the harsh radiation of space.
  • Lots in orbit: over 1300 have been launched, and nearly 750 still

What's telemetry? (3m)

  • Information about the satellite and its components, sent by the
    satellite. Examples:
    • solar panel status (voltage, whether deployed)
    • battery information (charging status, voltage, current, temperature)
    • on-board computer information (cpu usage, uptime, storage space)
    • spacecraft orientation
    • instrument detail (measurements taken, k)
  • The satellite data we analyze comes from SatNOGS, an open
    source network of over 200 ground stations around the world.
    satellite, or to see trends over time
    • This is much like monitoring any service for performance: it
      lets you see if things are good (or bad!) right now, but also
      lets you see what the trend looks like
  • And now we can point Polaris at the data

What is Polaris? (10m)

  • Polaris is an open source project that applies machine learning to
    satellite telemetry, with developers in North America, Europe and India
    • Python was an obvious choice for the project: the language is
      hugely popular already in scientific circles, and there is a
      vast array of already-existing libraries:
    • XGBoost, mlflow (machine learning)
    • Pandas, numpy (numerical computation)
    • Click (library for building CLIs)
    • We've also built our own libraries:
    • Vinvelivaanilai (fetching space weather information)
    • Betsi (anomaly detection)
  • Polaris does three things:
    • It fetches data for a particular satellite from SatNOGS, along
      with space weather and orbital data.
    • It applies machine learning techniques to automatically analyze
      the telemetry:
    • Seeks out connections between different components using XGBoost
    • Looks for anomalies in behaviour using Betsi, our own
      implementation of anomaly detection
    • It presents a browser-based, 3D visualization of its analysis.

Example analysis: LightSail-2 (5m)

  • A guided tour of a sample analysis, using data from the
    LightSail-2 cubesat
  • LightSail-2 is a private satellite launched in 2019 to
    demonstrate that solar sailing -- using the pressure of sunlight
    alone to move a spacecraft -- is possible for cubesats in low
    earth orbit. It was built by the Planetary Society, a non-profit
    organization that works to promote the excitement of space

Future goals (2m)

  • Automatically updated analyses for different satellites
  • Working with satellite operators to make Polaris more useful for them
  • Continuing to add new data sources, and new analysis methods for

Hugh Brown has worked as a gas station attendant, sandwich artist, call center worker and surveyor's assistant, but he left these pale glories behind when he discovered the joys of Linux, system administration, and programming. By day he's a software developer, helping to build and operate cloud services; by night he's a core contributor to the Libre Space Foundation, and one of the developers of Polaris.