Between the Spring of 2019 and Fall of 2020 (when I finished my undergraduate degree), I worked as the lead flight software engineer to develop the first flight-ready ROS (Robot Operating System) based flight software for the D3 CubeSat mission (Buckner et al., 2020). The D3 contains four deployable booms for control of aerodynamic drag to: (1) reduce orbital lifetime, (2) de-orbit point target and (3) perform collision avoidance. This software was also picked to support the PATCOOL CubeSat mission in addition to D3.
Main Contributions:
Developed software modules for radio telemetry links, GPS navigation, finite-state handling, uplink command processing, onboard software updates and failsafe reboots
Created C++ orbital simulation/propagation software to simulate guidance tracker
Performed guided trajectory analysis involving LQR (linear quadratic regulator) and EKF (extended Kalman filter) performance for guidance tracker validation
Led team scheduling, trained new members and prepared test plans for three-layered SWIL (software-in-the-loop), HWIL (hardware-in-the-loop) and FlatSat testing
The D3 CubeSat was successfully launched in July 2022, and performed re-entry (completing all mission requirements) in April 2023.
References
2020
SmallSat
A Novel Approach to CubeSat Flight Software Development Using Robot Operating System (ROS)
Samuel Buckner, Carlos Carrasquillo, Marcus Elosegui, and 1 more author
In 34th Annual AIAA/USU Small Satellite Conference, 2020
The large-scale development and deployment of small satellite systems in the modern aerospace sector motivates the parallel development of new flight software and avionics systems to meet the demands of modern spaceflight operations. Robot Operating System (ROS) provides an open-sourced and modular software framework that can be adapted for space-faring purposes in addition to the standard robotics operations that it is intended for. At the University of Florida’s Advanced Autonomous Multiple Spacecraft (ADAMUS) Laboratory, this framework, serving as the first flight-ready implementation of ROS in spacecraft flight software architecture, will be used in two upcoming CubeSat missions: (1) The Drag De-Orbit Device (D3) mission and (2) the PAssive Thermal Coating Observatory Operating in Low earth orbit (PATCOOL) mission. These missions will serve to validate the reusability of this software and the core functionality contained within, supporting tasks such as data link transmission, command processing, GNC (guidance, navigation & control), avionics system health diagnostics and soft/hard reboot instantiation. These capabilities draw upon the foundations of ROS in which tasks are handled by software modules that communicate through a language-agnostic messaging system resulting in an efficient multiprocessing architecture. Improvements and design considerations are also proposed in addition to suggestions for possible future use-cases of ROS in spaceflight software design.