A modular ROS 2 platform that simulates and controls the critical systems of a space station. Life support, thermal regulation, and electrical power — all running as independent, hardware-ready nodes.
Space Station OS started as a question: what would it look like if you designed the software stack for a space station the way you design modern robotics infrastructure? Each subsystem as an independent ROS 2 node. Standardised interfaces. Hardware-ready from day one.
The architecture is modelled on the ISS. I worked on ECLSS, the thermal control system, and the electrical power system — not as toy simulations, but as systems that mirror the actual closed-loop logic the ISS uses. The goal was a platform another engineer could pick up, extend, and eventually run on real hardware.
The project was featured by Northeastern University in February 2026.
The ECLSS models the three core processes: scrubbing CO2 from cabin air, generating fresh oxygen through electrolysis, and recovering clean water from wastewater. Each one is a separate ROS 2 node. They talk to each other over topics and services exactly the way the real ISS systems do.
The Sabatier reaction is modelled too — CO2 and hydrogen combine to produce water, which feeds back into the oxygen generation cycle. It is a genuinely closed loop, not a toy approximation.
In low Earth orbit the station cycles between +120°C in sunlight and -160°C in shadow every 90 minutes. The TCS simulation uses RK4 integration over a graph of configurable thermal nodes and links to model that dynamic accurately. Cooling loops trigger when node temperatures exceed configured thresholds.
Nodes represent equipment with temperature, heat capacity, and internal power dissipation. Links define conduction between adjacent nodes. The whole system is configured from YAML — you can model any thermal topology without changing code.
FDIR events publish to /diagnostics when overheating or loop failures are detected, which lets a ground control GUI or a monitoring node respond in real time.
The EPS models the full ISS power chain from solar tracking through battery storage, bus switching, and regulated DC conversion. Each component is a ROS 2 node. The BCDU coordinates parallel battery charging and discharging via an action server, monitors voltage bounds, and enters safe mode on fault. MBSU routes power from healthy channels. DDCU is in progress.
Every subsystem follows the same ROS 2 interface pattern: a telemetry topic for continuous state publishing, a service for synchronous requests, an action server for long-running operations, and a diagnostics topic for FDIR events. Swapping a simulation node for a real hardware driver requires changing the implementation, not the interface.