A modular ROS 2 platform that simulates and controls the critical systems of a space station. Life support, thermal regulation, and electrical power all run as independent, hardware ready nodes.
I started Space Station OS from a simple question. What would the software stack for a space station look like if you built it the way we build modern robotics infrastructure? So I made each subsystem an independent ROS 2 node with standardised interfaces, and I kept it ready for real hardware from day one.
The architecture is modelled on the ISS. I worked on ECLSS, the thermal control system, and the electrical power system. These are not toy simulations. They follow the actual closed loop logic that the ISS uses. My goal was a platform that another engineer can 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 in the same way the real ISS systems do.
I also modelled the Sabatier reaction, where CO2 and hydrogen combine to produce water. That water feeds back into the oxygen generation cycle, so the loop is really closed and 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 this behaviour accurately. Cooling loops trigger when node temperatures exceed the 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, so you can model any thermal topology without changing the code.
FDIR events publish to /diagnostics when overheating or loop failures are detected. This 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 through 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. To swap a simulation node for a real hardware driver, you change the implementation and keep the interface.