SPHERES: formation flight on the ISS
Space Exploration is a field of study that requires a vast array of technologies and skills. It's also an incredibly fun field to work in.
My Masters thesis focused on SPHERES (Synchronized Position Hold, Engage, and Reorient, Experimental Satellites) (yes, that's really the acronym), which provide a safe and reusable zero gravity platform to test sensor, control, and autonomy technologies for use in satellites, especially in the area formation flight. We originally launched three free-flying satellites that are currently onboard the International Space Station (ISS). By now, it has been operating for over 10 years and is one of the most loved projects by the astronauts that get to use it.
Twelve carbon dioxide thrusters are used for control and propulsion, and allow the satellites to maneuver with great precision in the zero gravity environment of the station. Ultrasound beacons in the test area and ultrasound receivers on the satellites allow the SPHERES to determine their relative positions.
My research focused on
- Designing and fabricating a genderless docking interface to allow two SPHERES satellites to rigidly mate and de-mate.
- Integrating relative position information provided by the docking interface, on-board IMU data, and a built-in physical model to produce a real-time relative state estimate used during the docking procedure. At the core of this relative estimator is a nonlinear Kalman filter.
Combining the docking interface with the relative estimator, we were able to achieve formation maintenance and docking.
It's unusual for grad students (or anyone) to be able to write code and run it on satellites in direct proximity to humans. Normally that would not be allowed but we designed the satellites so that software is not a safety-critical component of the overall system. In other words, even if the software caused all the thrusters to fire simultaneously or to max out the power usage or the radios, the safety of the astronauts and the ISS would not be impacted. All such faults are protected against by hardware and firmware, that way the software can be anything we want. We also don't have to go through years of safety checks with the code. After we got the satellites up there (the biggest challenge of course), we could write code and have it running in space in a few weeks. This is a much faster write-debug-run loop than normal space software development. (Of course we tested our code hundreds of times with SPHERES on the ground before sending it up, but still...)