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 at MIT 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. By now, it has been operating for over 15 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, combined with infrared synchronization pulses and onboard gyros and accelerometers, allow the SPHERES to determine their relative positions.
My research focused on:
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 draw, or to start fuzzing out the radios, the safety of the astronauts and the ISS would not be effected. All such faults are protected against by hardware and firmware, that way the software can be anything we want to try. We 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...)